鉴于有很多人在评论区指出可以直接使用vs这一显而易见更优的方法,首先声明:大型项目请优先使用IDE,推荐vs(笑,不要和我一样憨憨使用vscode

9102年了,用vscode还需要手动管理头文件吗。。。。应该使用compile_commands.json才是正途

插件选择

最简单的是处理cmake工程,你需要安装这两个插件

都是微软自己出品,质量有保障,需要特别注意的是,cmake插件需要cmake3.9.4以上版本的cmake的支持,ubuntu16.04以下的用户可能需要手动安装新版本的cmake

c++插件会自动下载二进制内容保障补全功能,可能需要等待一些时间

开始项目

用vscode直接打开你的cmake工程目录的根目录,我这里直接以cmake这个项目为例好了

不多时vscode就会弹出上面这个选择框,通知你需要选择一个编译器进行编译,如果你没有什么特别的需求就随便选一个g++吧,没有看见这个框可以点击下面的 No Kit Selected 选择,选好之后大概是这个样子

以后你还是可以直接点这个地方改变编译器,这个时候你已经可以点击旁边带着齿轮的build按钮进行构建了,构建会默认在build文件夹下进行,如果没有也会自己创建,默认使用debug模式编译角落里会弹出进度条告知编译进度,编完就ok了

之后每一次打开都会自动跑一次cmake保证当前项目配置正确,这个时候你已经可以在build文件夹下面找到compile_command.json文件了

重启vscode,你应当能看见cmake为你弹出来的弹框,说需要通过cmake为c++插件指明方向,允许就完事了,具体其实就是让c++插件自己问build文件夹在哪里,添加了这么一句设置

{
"C_Cpp.default.configurationProvider": "vector-of-bool.cmake-tools"
}


然后头文件目录,编译关系vscode自己就知道了,不需要我们手动调整

那如果我不使用cmake呢

这个时候你可以通过其他方式创建compile_commands.json,具体可以参考这个地方(顺便安利ccls,完全不输官方插件的lsp)MaskRay/cclsgithub.com

一般来说过一段时间c++插件自己回去找它在哪里

但是你也可以通过手动配置compile_commands.json的位置,ctrl+shift+p打开命令面板找到这一项

然后展开高级设置区域配置这一项,写相对路径就好,如果在build文件夹下,那就这样

这下你就可以在include上面使用F12跳转到对应文件了