VSCode C / C ++ Intellisense无法与CMake项目一起使用

时间:2019-02-13 13:55:00

标签: visual-studio-code vscode-settings

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

我的工具位于:

<project>/clang-tools-extra/mytool

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

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

{
    "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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果其他人有这个问题,我可以通过将MSVC完成转换为clang来解决。

使用clang时,实际上给了我一些提示,显示了路径错误的方式。

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

答案 2 :(得分:0)

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

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