如何在Visual Studio Code中正确使用CMake?编译基础项目遇编译器标识错误求助
Hey,我之前也碰到过几乎一模一样的问题!看你贴出来的错误日志,CMake没法识别到你的GCC编译器,大概率是环境变量或者VS Code的CMake配置没弄对,我给你几个亲测有效的解决步骤:
先确认MinGW的环境变量是否配置到位
打开系统的环境变量设置,把C:/msys64/mingw64/bin这个路径添加到系统变量的Path里(别只加用户变量,不然VS Code可能读不到)。配置完一定要重启VS Code,然后打开终端输入gcc --version,如果能正常显示GCC的版本信息,那这步就搞定了。检查VS Code的CMake插件配置
打开VS Code的设置(快捷键Ctrl+,),先搜索CMake: Compiler Path,手动指定GCC的路径:C:/msys64/mingw64/bin/gcc.exe;对应的C++编译器也可以一起设置,路径是C:/msys64/mingw64/bin/g++.exe。
另外,看看CMake: Kit Selection选项,要是没自动检测到你的MinGW套件,就点一下“Scan for Kits”重新扫描,实在不行就手动添加一个Kit,在配置里指定好刚才的编译器路径。用工具链文件强制指定编译器(终极方案)
如果上面两步都没解决,就在项目根目录新建一个toolchain-mingw.cmake文件,内容写:set(CMAKE_C_COMPILER "C:/msys64/mingw64/bin/gcc.exe") set(CMAKE_CXX_COMPILER "C:/msys64/mingw64/bin/g++.exe") set(CMAKE_SYSTEM_NAME Windows)然后在VS Code的CMake设置里,把
CMake: Toolchain File设为这个文件的路径,或者在重新配置CMake的时候加上参数-DCMAKE_TOOLCHAIN_FILE=toolchain-mingw.cmake。清理旧缓存再重新构建
有时候之前的CMake缓存会残留错误配置,在VS Code的CMake面板里,找到“Delete Cache and Reconfigure”按钮点一下,彻底清空旧配置后再让CMake重新检测编译器,大概率就能正常识别了。
我当时就是因为图省事只把MinGW路径加到了用户变量里,VS Code一直读不到,折腾了好半天才发现这个小坑😅
备注:内容来源于stack exchange,提问作者Hannes Ziegler

