VSC+CMake自定义套件编译C++20及MSYS2 g++适配问题咨询
完全可以创建自定义CMake Kit适配MSYS2的g++编译器,以下是具体操作步骤:
1. 前置准备
- 先将MSYS2对应环境的bin目录加入系统PATH变量,比如常用的mingw64环境默认路径是
C:\msys64\mingw64\bin,确认该目录下存在g++.exe、gcc.exe,以及你要使用的生成器对应的可执行文件:- 若选Ninja生成器:确认存在
ninja.exe(MSYS2可通过pacman -S mingw-w64-x86_64-ninja安装) - 若选MinGW Makefiles生成器:确认存在
mingw32-make.exe
- 若选Ninja生成器:确认存在
2. 添加自定义CMake Kit
- 按
Ctrl+Shift+P打开VS Code命令面板,输入并执行CMake: Edit User-Local CMake Kits,打开cmake-kits.json配置文件 - 在文件的JSON数组中加入以下配置,可根据你的实际安装路径调整:
[ // 其他已有kit配置保留,新增以下内容 { "name": "MSYS2 MinGW64 G++ (Ninja)", "compilers": { "C": "C:/msys64/mingw64/bin/gcc.exe", "CXX": "C:/msys64/mingw64/bin/g++.exe" }, "generator": "Ninja", "preferredGenerator": { "name": "Ninja" } }, // 如果想用MinGW Makefiles生成器,可以再加下面这个配置 { "name": "MSYS2 MinGW64 G++ (MinGW Makefiles)", "compilers": { "C": "C:/msys64/mingw64/bin/gcc.exe", "CXX": "C:/msys64/mingw64/bin/g++.exe" }, "generator": "MinGW Makefiles", "preferredGenerator": { "name": "MinGW Makefiles" } } ]
3. 配置全局默认生成器(可选,避免偶发报错)
打开VS Code的settings.json,加入以下配置:
// 选你使用的生成器即可,这里以Ninja为例 "cmake.generator": "Ninja"
4. 验证使用
保存所有配置后,点击VS Code底部状态栏的CMake Kit选择按钮,选中你刚刚新增的MSYS2 MinGW64 G++相关的Kit,重新执行CMake Configure操作即可正常编译C++20代码。
注意事项
- 优先推荐使用Ninja生成器,编译速度更快,且不会出现MinGW Makefiles常见的PATH中存在sh.exe导致的编译报错问题
- 若你的CMakeLists.txt中还未指定C标准,需要加入配置
set(CMAKE_CXX_STANDARD 20)开启C20支持
内容的提问来源于stack exchange,提问作者a a
相关产品推荐
相关产品推荐

