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

问题描述 投票:0回答:3

我有一个 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/**"
]

但是也没有成功。

我还尝试将标题/源手动放入所有 CMakeLists.txt 文件中(不使用 file(GLOB_RECURSE)) 但也没有成功。

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

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

c++ visual-studio-code cmake intellisense header-files
3个回答
8
投票

对于那些仍然遇到这个非常恼人的问题的人,对我有用的解决方案是禁用任何

C++
扩展,即 Microsoft C++ 扩展包,然后再次启用它们。


4
投票

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


0
投票

在 cpp_properties.json 文件的“includePath”部分中,添加“${workspaceFolder}/**”以包含workspaceFolder 的所有子目录的路径。这解决了我使用智能感知检测头文件的问题。

© www.soinside.com 2019 - 2024. All rights reserved.