问题:clang(pp_file_not_found)的解决方法
vscode 使用clang作为编译器时,还是很好用的。
但是有个问题你可能会遇到,在引入其他库的头文件时,总是找不到。提示:clang(pp_file_not_found)
查了半天也没有找到解决方法。还好在github上看到一个merge:Expand documentation about compile command inference for header files
方法1:
所以我们只需在在vscode的clangd插件的设置中新增参数即可解决,位置:设置-clangd:clangd.arguments
--compile-commands-dir=${workspaceFolder}/build/${buildType}
这里主要就是设置compile_commands.json的路径位置。
或者在settings.json中加:
"clangd.arguments": [
"--compile-commands-dir=${workspaceFolder}/build/${buildType}"
]
方法2:
设置cmake config完成后,把compile_commands.json拷贝到${workspaceFolder}
目录。
位置:设置-cmake:Copy Compile Commands,填写:${workspaceFolder}/compile_commands.json
总结:
很有可能是我更改了cmake的build路径:${workspaceFolder}/build/${buildType}
,导致生成的compile_commands.json在我更改的路径下面,所以clangd服务,就找不到了,导致无法找到头文件。所以就要用上面两种方法指定路径,或者拷贝到可以找到的地方。