vscode c_cpp_properties.json 配置完成仍然找不到头文件问题
情况
我的目录结构是这样的:
我最开始的c_cpp_properties.json文件是这样配置的:
但是这样我的代码找不到头文件:
思考
我刚开始尝试在includePath中加入一行:
用以解决我头文件找不到的问题,但是没有用!
想了很久,也搜了很久,千篇一律的更改includePath
。偶然间我观察到,最后一行"configurationProvider": "ms-vscode.cmake-tools"
,我问了下AI:
configurationProvider 在VSCode中是一个非常重要的配置项,它用于指定一个VS Code扩展的ID,该扩展能够为源文件提供IntelliSense配置信息。这对于C/C++开发尤其重要,因为它可以帮助VSCode理解项目的配置,从而提供更好的代码自动完成、代码导航等功能。
以下是configurationProvider的一些关键用法和功能:
指定配置信息提供者:
configurationProvider 的值是一个VS Code扩展的ID,这个扩展能够提供IntelliSense配置信息。例如,使用 ms-vscode.cmake-tools 作为 configurationProvider 可以使得CMake Tools扩展根据CMakeLists.txt的配置来指定C/C++的代码环境。自动完成和代码导航:
当你设置了 configurationProvider 后,VSCode能够根CMakeLists.txt中的配置来识别头文件和其他依赖,从而提供更准确的自动完成和代码导航功能。与compile_commands.json结合使用:
除了设置 configurationProvider,还可以通过指定 compile_commands.json 文件的路径来提供编译命令信息。这样,VSCode会使用这个文件中的包含路径和宏定义来配置IntelliSense,而不是使用 c_cpp_properties.json 中的设置。配置优先级:
如果指定了 configurationProvider,那么提供的信息将优先于 c_cpp_properties.json 中的其他设置。解决头文件识别问题:
在某些情况下,如果你在使用VSCode进行C/C++开发时遇到头文件无法识别的问题,设置 configurationProvider 可以帮助解决这个问题。
总之可以看出就是这行影响了vscode的行为,让它找不到头文件。
那么解决它:
- 删掉这一行,让vscode根据
includePath
来寻找头文件 - 修改cmake文件,让vscode能正确找到头文件
解决一
解决二
之前cmake有错误改掉
之前这两行变量引用有误,改好就行了