【问题标题】:VSCode C/C++ Intellisense not working with CMake projectVSCode C/C++ Intellisense 不适用于 CMake 项目
【发布时间】:2022-02-15 00:42:38
【问题描述】:

我正在尝试使用 libTooling 编写一个工具。我对其进行了设置,以便使用 LLVM 文档中的示例进行编译。但是 C/C++ Intellisense 似乎不适用于 CMake 项目。

我的工具位于:

<project>/clang-tools-extra/mytool

现在 C/C++ 扩展尝试读取 compile_config.json 并告诉我找不到 <project>/build/compile_config.json,而是使用来自 c_cpp_properties.jsonincludePath

我尝试在我的工作区设置中手动添加包含路径:

{
    "C_Cpp.default.includePath": [
        "../../",
        "../../clang/Frontend/",
        "../../clang/Tooling/",
        "../../llvm/Support/"
    ],
    "C_Cpp.default.browse.path": [
        "../.."
    ]
}

或在文件c_cpp_properties.json 中。但它仍然在错误的位置搜索包含。例如。包括:

#include "llvm/Support/CommandLine.h"

它试图在<project>/llvm/include/llvm/Support/CommandLine.h 中查找。所以显然它从 command_config.json 中读取了一些东西,即使它说它找不到它(虽然它在那里),但是错误的东西。它根本不应该添加llvm/include

【问题讨论】:

    标签: visual-studio-code vscode-settings


    【解决方案1】:

    您需要安装 cmake-tool 扩展 (ms-vscode.cmake-tools) 并将以下配置添加到您的 c_cpp_properties.json:

    {
        "configurations": [
            {
                "compileCommands": "${workspaceFolder}/_build/compile_commands.json",
                "configurationProvider": "ms-vscode.cmake-tools"
            }
        ],
        "version": 4
    }
    

    它对我有用

    【讨论】:

      【解决方案2】:

      1) 将“compileCommands”指向“compile_commands.json”
      2) 您可能想要添加 **,例如:../../** 双星使其递归
      3)您可以使用一些变量,例如${workspaceRoot},而不是在包含路径中使用相对路径

      【讨论】:

      • 嗨 pooya13,谢谢你的建议。我认为他们改进了配置。同时我想通了(失败的是MSVC,它与clang一起工作)。无论如何我接受了这个答案,因为它是额外的帮助。
      【解决方案3】:

      也许你只需要启用扩展cmake-tools,正确配置CMakeLists.txt,然后运行cmake。

      通常情况下,只要 cmake 没有错误,Intellisense 应该可以正常工作。

      【讨论】:

        【解决方案4】:

        对于 VSCode 1.63+(2022 或更高版本):

        1.安装CMake Tools扩展(ms-vscode.cmake-tools)。

        2. 将其放入 .vscode/c_cpp_properties.json

        {
            "configurations": [
                {
                    "name": "CMake",
                    "compileCommands": "${config:cmake.buildDirectory}/compile_commands.json",
                    "configurationProvider": "ms-vscode.cmake-tools"
                }
            ],
            "version": 4
        }
        

        【讨论】:

          【解决方案5】:

          如果其他人有这个问题,我可以通过从 MSVC 完成切换到 clang 来解决它。

          使用 clang 它实际上给了我显示路径错误的工具提示。

          在此处查看如何将智能感知模式和位置​​设置为铿锵声: https://code.visualstudio.com/docs/languages/cpp

          【讨论】:

            猜你喜欢
            • 2023-04-06
            • 2020-12-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-10-29
            • 2020-10-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多