MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software.
msys2在windows上提供了类似linux的构建环境,可以方便地安装开发所需的各种库文件。网址为https://www.msys2.org/。
安装后可以将其集成到鼠标右键上,方法如下:
- regedit中在HKEY_CLASSES_ROOT\Directory\Background\shell路径下创建msys2目录,加上图标和提示语。
- msys2目录下创建command目录,默认项中填入要执行的命令。
"C:\msys64\usr\bin\mintty" -i "/ucrt64.ico" -t "MSYS2 UCRT64" /bin/env MSYSTEM=UCRT64 CHERE_INVOKING=1 /usr/bin/bash -li
若要使用msys2提供的不同的工具,修改上面命令中的MSYSTEM变量。
在文件夹下使用右键打开msys2,echo $PATH,如果 /ucrt64/bin 在其中则说明当前打开的是ucrt64环境,环境相关参考https://www.msys2.org/docs/environments/。
msys2使用pacman作为包管理器,使用如下命令统计各环境包的数量。
pacman -Sl | awk '{cnt[$1]+=1;}END{for(i in cnt){printf("%-12s%s\n", i, cnt[i]);}}'
使用pacman安装gcc、gdb、vim等软件,pacman -Ss vim查询,pacman -S vim安装。确认使用的环境,安装对应环境的包,包名前有环境名的前缀。
将根据使用的环境将运行目录添加到系统路径中,不是添加到用户路径中。
C:\msys64\usr\bin
C:\msys64\ucrt64\bin\
重启计算机后再配置vs code
参考以下链接配置环境。
https://code.visualstudio.com/docs/cpp/config-mingw
vs code中ctrl+shift+p搜索C++,打开ui配置,编译器路径在下拉列表中选中C:/msys64/ucrt64/bin/g++.exe。
单步调试退出main函数时如果报错 crtexe.c 相关问题,参考https://stackoverflow.com/questions/62724979/issue-when-debugging-with-gdb-after-compiling-with-the-msys2-mingw-w64-gcc-crte,使用strip -d C:\msys64\mingw64\x86_64-w64-mingw32\lib\crt2.o命令去掉调试信息。