编程环境终极配置
习惯了Posix环境下的各种方便工具,就很难在Windows平台下得到较好的编程体验。而在当前国内的网络环境下,直接使用Linux系统又有极大的不便之处。再加上Windows平台上又有很多软件没办法舍弃,所以我一直在寻找一种替代方案:在Windows上安装Posix环境。
Posix环境
编程环境总共就两家,Windows和Unix。上个世纪出现了很多Unix系统,使用上分化很严重。尽管都是叫Unix,但它们的兼容性没法保障。比如我在这台机器上写的程序,在另一台机器上甚至没法编译通过!后来就出现了Posix标准,符合这个标准的才给叫Unix。这下好了,我们写的程序不需要一个一个系统地测试了。
最热门的Linux系统属于类Unix系统,用起来一般不会出现跟Posix标准不符合的情况(反正我没见过)。所以大多数说的Linux编程大致等于Unix编程。
在Windows上提供Posix环境操作的主要有两家,msys2和wsl2。
wsl2
我没用过wsl2,不过听说wsl2用的是虚拟化技术,效率上就低了一层。再加上又是个新东西,稳定性肯定欠缺。而且还是微软推的技术,殊不知之前的wsl还没用几天呢,这就wsl2了?说不定明天微软就不爱Linux了。那我岂不哭死?
msys2
msys2就好多了,社区推动不会突然间就暴死,更新稳定性更有保障。在国内也有专门的镜像源(你甚至不需要做任何的配置),上清华软件站下载打包好的安装包一键安装就可以了。配有专门的软件包管理工具pacman,安装卸载软件包一键搞定。还可以通过配置注册表在文件夹下右键打开终端,获取跟Linux一样的体验。
我对它唯一的不满就是这终端界面,也太丑了。不过我都懒得去美化它,麻烦不说,稳定性就没法保障。尽量保持默认配置,是我稳定使用工具软件的诀窍。
所以终极方案就是Windows10+msys2+虚拟机。为什么还需要虚拟机呢?有时候一些东西实在是没法在Windows系统上搞的(比如ROS),就只能装个虚拟机勉强用着了。
msys2配置
如何添加右键打开,软件包管理工具的简单使用。
添加右键菜单
- 打开注册表
HKEY_CLASSES_ROOT\Directory\Background\shell
- 新建项
msys2
,默认值修改为msys2
- 新建字符串值,命名为
icon
,修改值为C:\msys64\msys2.icon
- 修改command的默认值为
C:\msys64\msys2_shell.cmd -mingw64 -here
软件包工具pacman
pacman 其实是arch项目的软件包管理工具,与arch通用
pacman -Ss qt6 # 搜索软件包
pacman -S mingw-w64-x86_64-qt6 # 安装qt6
pacman -R mingw-w64-x86_64-qt6 # 删除qt6
pacman -Q # 列出已安装的软件包
安装环境的选择
搜索软件包之后发现很多不同前缀的软件包。
分别是mingw32
, mingw64
, ucrt64
, clang64
, msys
。这些前缀分别对应各个不同的运行环境。从msys2的根目录可以看出,里面有对应前缀的可执行文件,分别对应不同的执行环境。我习惯使用mingw64环境,一直都没出现过什么问题,所以我也推荐你使用这个环境。
在安装时选择对应环境的安装包,然后在相应环境打开的shell中就可以使用。比如你安装了clang64的软件,就只有在打开clang64.exe的终端中才能使用软件,在其它环境中是搜索不到的。
注意到上面右键打开终端菜单设置中打开的是ming64环境。 在使用软件包工具时我安装的也是mingw64的软件包。