2
0
0

Visual Studio+cmake+clang场景下intelliSense报E1027错误

2026-10-28
2026-10-28
Visual Studio+cmake+clang场景下intelliSense报E1027错误
文章摘要
|

问题描述

在使用Visual Studio结合CMake和Clang进行c++23开发时

一次异常断电以后IntelliSense突然报出E1027错误。导致智能提示失效

从一开时一切正常,一次重启后突然出现智能提示失效,所有文件第一行报E1027错误

错误时的CMakePresets.json

{
  "version": 8,
  "configurePresets": [
    {
      "name": "clang22",
      "displayName": "Clang 22.1.3 (MSVC CLI) - amd64 for MSVC 18.8.12023.21 (Visual Studio Community 2026 Release)",
      "description": "正在使用编译器: C = C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\Llvm\\x64\\bin\\clang-cl.exe, CXX = C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\Llvm\\x64\\bin\\clang-cl.exe",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/install",
        "CMAKE_C_COMPILER": "C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/Llvm/x64/bin/clang-cl.exe",
        "CMAKE_CXX_COMPILER": "C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/Llvm/x64/bin/clang-cl.exe"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "clang22-debug",
      "displayName": "Clang 22.1.3 (MSVC CLI) - amd64 for MSVC 18.8.12023.21 (Visual Studio Community 2026 Release) - Debug",
      "configurePreset": "clang22",
      "configuration": "Debug"
    }
  ]
}

原因

根本原因好像是vs的clang解释器没有正确识别c++23标记?

未知

解决方法

  1. 将配置文件改为如下相对路径

{
    "version": 8,
    "configurePresets": [
      {
        "name": "clang22",
        "displayName": "Clang 22.1.3 (MSVC CLI) - amd64 for MSVC 18.8.12023.21 (Visual Studio Community 2026 Release)",
        "description": "正在使用编译器: C = C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\Llvm\\x64\\bin\\clang-cl.exe, CXX = C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\Llvm\\x64\\bin\\clang-cl.exe",
        "generator": "Ninja",
        "binaryDir": "${sourceDir}/build",
        "cacheVariables": {
          "CMAKE_CXX_COMPILER": "clang-cl"
        },
        "vendor": {
          "microsoft.com/VisualStudioSettings/CMake/1.0": {
            "intelliSenseMode": "windows-clang-x64"
          }
        }
      }
    ],
    "buildPresets": [
        {
            "name": "clang22-debug",
            "displayName": "Clang 22.1.3 (MSVC CLI) - amd64 for MSVC 18.8.12023.21 (Visual Studio Community 2026 Release) - Debug",
            "configurePreset": "clang22",
            "configuration": "Debug"
        }
    ]
}
  1. vs 项目->删除缓存并重新配置

  2. 确保在正确的项目点击运行

  3. 重启vs

让后就突然好了😱


这也太玄学了我不知道为啥突然就这样了,改成直接写clang-cl就好了

之前写了绝对路径就报错了,难道是vs的clang解释器没有正确识别c++23标记?还是说是vs的clang解释器有bug?

反正改成相对路径就好了


参考

https://developercommunity.visualstudio.com/t/Intellisense-for-ClangCL-does-not-work-f/11012681 关键
https://developercommunity.visualstudio.com/t/11125466
https://developercommunity.visualstudio.com/t/11077077

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论