VSCode头文件代码提示报错

有时用vscode时候,老是头文件给我报奇奇怪怪红波浪线,导致智能跳转啥的也没了

环境

首先我们肯定要安装C/C++插件的,他给我们提供智能感知
之后我们也需要安装cmake tools,他能跟具cmakelists文件来给我们配置智能感知

设置感知头文件路径

我们通过配置c_cpp_properties.json来设置感知头文件路径

  • 打开c_cpp_properties.json,ctrl + shift + P然后选择c/c++ edit configurations" and chose 'json'
  • 通过includePath来设置感知头文件路径,也可以通过compileCommands设置compile_commands.json路径来设置。compile_commands.json文件是cmake通过CMakelists生成

注意:设置compileCommands后,就不能通过includePath来设置智能感知了

includePath设置智能感知

  • 设置configurationProvider : "ms-vscode.cpptools"
  • 设置includePath来感知头文件路径

这样做需要为每个include感知的文件添加路径,当感知的头文件名相同时,会导致感知的不是你想要的头文件

设置compileCommands设置智能感知

  • 设置configurationProvider : "ms-vscode.cmake-tools"
  • 通过cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1来生成compile_commands.json文件
  • compileCommands设置compile_commands.json路径来设置

这么设置我们每次新的cpp,.h时,都需要重新编写CMakelists.txt来包含文件,然后重新生成compile_commands.json(生成时候需要xxx.cpp文件包含其对应xxx.h文件让xxx.h也能写进compile_commands.json,否则xxx.h不能智能感应)

然后我碰到过些奇奇怪怪的问题,就是每次执行makefile时后,都会当指当前打开面板xxx.hpp感知全失效,但重启VSCode或指关闭面板打开其他hpp后,然后再打开感知失效xxx.hpp后感知又回来了(插件BUG?)

引用

最后修改:2023 年 01 月 10 日
如果觉得我的文章对你有用,请随意赞赏