解决:是依赖路径的问题,
-
先看includePath对不对,但是有时候会依赖外部文件,这时候入股cmake编译能够听过, 说明编译器能够找到依赖路径, 但是vscode的
IntelliSense 找不到依赖路径 → 导致编辑器提示错误、不能跳转定义、不能自动补全等。 -
需要设置 .vscode目录下的c_cpp_properties.json 文件, 在其中添加compileCommands。
可以在 执行cmake时候加上
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
意味执行cmake并且在.
(当前目录)中声称compile_commands.josn
(注意最后的点)
之后会在当前目录中有一个 compile_commands.json(这个文件应该出现在执行上面一句cmake的目录下),
在c_cpp_properties.json 中添加上即可
例如,我在${workspaceFolder}/build
目录下执行的cmake,可以如下写c_cpp_properties.json
{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**"],"defines": [],"compilerPath": "/usr/bin/gcc","cStandard": "c11","cppStandard": "c++14","intelliSenseMode": "linux-gcc-x64","compileCommands": "${workspaceFolder}/build/compile_commands.json"}],"version": 4
}