我正在尝试使用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
。
答案 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应该可以正常工作。