CMake在编译器更新后无法找到MSVC



我在Windows系统上使用VSCode(版本1.74.2)。我的项目需要CMake (v 3.24)和MSVC编译器。

我安装了MSVC 19.31,它与VSCode和CMake套件(自动找到)一起工作得很好。

今天我需要将MSVC升级到19.34。幸运的是,这并没有引起任何问题,除了事实上VSCode找不到编译器了。

显然,我清除了所有构建目录,所以在cmake文件中没有旧编译器的残余。并且使用开发人员命令提示符验证编译器的安装。

我尝试扫描套件,"Visual Studio Professional 2022 Release - XXX"(XXX = [x86|x86_amd64|amd64_x86|amd64])找到套件。我选择了"amd64"装备。配置结果如下:

[cmake] CMake Error at C:/Program Files/CMake-3.24.1/share/cmake-3.24/Modules/CMakeDetermineCCompiler.cmake:49 (message):
[cmake]   Could not find compiler set in environment variable CC:
[cmake] 
[cmake]   cl.exe.
[cmake] Call Stack (most recent call first):
[cmake]   CMakeLists.txt:9 (project)
[cmake] 
[cmake] 
[cmake] CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
[cmake] CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
[cmake] -- Configuring incomplete, errors occurred!

显然编译器没有找到

我试图删除工具包文件并重新扫描。在C_Cpp>默认编译器路径设置导致错误。

Unable to resolve configuration with compilerPath "C:Program FilesMicrosoft Visual Studio2022ProfessionalVCToolsMSVC14.34.31933binHostx64x64".  Using "cl.exe" instead.

啊,是的,我也重新启动了机器,启动VS,关闭并重新打开VSCode(几次)-这些东西有时有助于微软的产品,但不是这次。

如果有任何有用的意见,我都很高兴。

这是你用VS Code打开的项目配置文件的问题。VS Code的CMake插件的工作方式是为你的项目创建至少两个特殊文件:

  • c_cpp_properties.json
  • tasks.json

您主要对c_cpp_properties.json文件感兴趣,这是一个示例文件,我从我回答的不同问题中取出:

{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-x64"
}
],
"version": 4
}

你的看起来也差不多。

您对名为的元素(通常位于底部)感兴趣。compilerPath.

由于您将MSVC更新到较新的版本,您仍然在这里传递错误的路径(我可以告诉您从14.xxx升级)。

通过修正到新版本的路径,您很可能会解决您的问题。

注意:您可能需要更新更多的这些变量(甚至可能在两个文件中)。然而,这就是你的问题的根源。

最新更新