vscode intellisense 找不到cmake项目中包含的头文件

Gab*_*dim 8 c++ intellisense cmake header-files visual-studio-code

我有一个 cmake 项目,其中包含:
一个名为 Project1 的静态库
一个名为 Project2 的静态库,依赖于 Project1
一个名为 Project3 的可执行文件,依赖于这两个库

一切都按预期工作(makefile,它正在正常构建和运行,...),但问题是 vscode intellisense 只是在每个子目录上使用 target_include_directories 指定的文件夹中找不到头文件。

智能感知可以找到默认标头(iostream、向量等)。

示例: https: //i.stack.imgur.com/XeVGW.jpg

我还尝试将包含目录放入 c_cpp_properties.json 中:

"includePath": [
    "${workspaceFolder}/Project1/src/**",
    "${workspaceFolder}/Project2/src/**",
    "${workspaceFolder}/Project3/src/**"
]
Run Code Online (Sandbox Code Playgroud)

但它也不起作用。

我还尝试将标头/源手动放入所有 CMakeLists.txt 文件中(不使用 file(GLOB_RECURSE)),但它也不起作用。

这个项目只是我为了展示这个问题而做的一个小例子,但它也发生在所有其他项目中。

该项目可以在这里找到: https: //github.com/gabrielmaia2/CmakeTest

小智 8

对于那些仍然遇到这个非常恼人的问题的人来说,对我有用的解决方案是禁用任何C++扩展,即 Microsoft C++ 扩展包,然后再次启用它们。

  • 有同样的问题,对我有用的是禁用/重新启用 CMake 工具扩展。 (4认同)

Gab*_*dim 4

找到了。扩展“C/C++ Clang Command Adapter”显示错误,因为未配置 clang。我刚刚禁用了它(因为我没有使用它),现在它按预期工作。