Windows 平台安装开发工具,优先使用 msys2 Mingw 是不是一个好主意?

因为习惯了 linux 的包管理工具,转到 Windows 的时候很不习惯。后来发现了 msys2,使用 pacman 安装 mingw 包很爽啊, 而且基本覆盖了我所有需要的工具。只有找不到我才会使用传统 Windows 的方式去官网下载。

例如 emacs 我就用 msys2 的 pacman 安装 mingw版,和 Linux 一样,检测依赖,然后帮我把 universal-ctags 装上,非常 nice。

不过我观察周围的人,这样做的人很少,所以我想听听道友们的建议。

平时很爽,但是需要 python 时,开始有各种坑。

3 个赞

为了防止奇奇怪怪的问题伤害心情,用 wsl2 + archlinux 才是最佳选择。

2 个赞

ms是干啥啥不行

2 个赞

有一个需要注意的问题就是只要用了 msys2 就锁死在里面,不要再用 Windows 原生的那些包管理器(scoop,choco,etc.)去安装任何和开发/环境有关的依赖了,因为互相覆盖会把你的 Path 搞乱,导致找不到依赖等各种各样的问题。

1 个赞

win上的开发还是用vs

我是最近这么做的一员,真的爽!

先说我这边体会到的优点:

  1. 开发环境便携化(MSYS2的整个安装目录可以直接拷走使用),我这边现在除了Visual Studio, 平时开发用的QT creator, VScode, 等windows原生软件我都给搞成便携的了,直接在MSYS2里面启动,重装系统的时候就很香。
  2. 使用MSYS2管理系统PATH和环境变量,这样系统的PATH干净得几乎像一张白纸,目前我在使用过程中只有一个解决到一半的问题,就是编译程序时,得启动到VS 的开发CMD,启动倒是启动了,但是编译还是有问题,要编译还是的用原生CMD,但是原生CMD又没有相关工具(比如CMAKE,我不想改系统PATH),所以只能先借助IDE来生成工程,目前影响不大。
  3. 自编译Emacs很方便哈哈哈。
  4. 相对于Cygwin/WSL的解决方案来说更轻量更加便携,而且还是默认pacman包管理。
  5. 和native windows程序能很好的融合,只要把PATH管理好就行。

缺点的话,可能就是一旦这么做就被限制在MSYS2里了,或者某些时候场景,对开发有影响(比如上面提到的编译VSC++工程),但是我个人觉得还好,利大于弊。

另外,看到有人提到了python环境的支持可能有坑,我介绍下我的方案给大家参考:

我是用的是pyenv-win,方便之处在于可以多python版本共存, 平时开发就用virtualenv建立虚拟环境,但是,这个方案有一个问题,如果处在非虚拟环境中,使用CMAKE,作如下使用时:

find_package(Python COMPONENTS Interpreter Development REQUIRED)

可能会找不到python环境,这是因为pyenv-win给PATH里加的都是bat脚本,执行python会直接调用这个bat而不是python.exe,解决方案就是在虚拟环境里去构建工程.

至于其他坑,我现在没怎么遇到,遇到了再说。

1 个赞

我觉得自己用着方便就行,Windows 下没有什么完美的方式。

我一般使用 scoop 安装软件,scoop 的优点就是绿色安装,可以自定义安装位置,缺点就是依赖 git,需要代理

1 个赞

你好像对微软有意见 :joy: