问题
碰到了一个 VSCode include 路径的问题。我的项目路径在 {workspaceRoot}/include 下,一开始想要以 -I./include
的方式来编译的。不过在 VSCode 中遇到了些麻烦。
解决
使用的是 Microsoft C/C++ Extension。这个插件非常棒,但是在 mac 上因为 bug 的原因之前经常烫烫烫。好在已经 fix 了。在项目路径下的 .vscode 的文件夹下一般而言有四大金刚:c_cpp_properties.json
,launch.json
,settings.json
以及 tasks.json
。其中 $1 用于配置 path……我都没怎么碰过这东西……还以为没啥用呢(。一般配置的都是 $2 和 $4。$3 是自动生成的用户配置,不用管就好。$2 launch.json
用于调试,而 tasks.json
用于 build && run。
查了半天,在 VSCode 的官方博客上找到了:应该在 $1 c_cpp_properties.json
中配置路径。所以变成了现在这样:
emmmm。虽然我不知道 browse 那是什么东西。不过还是加上吧。
然而鬼畜的来了:特么竟然还是报错!!按官博说的,应该已经好了!!
痛苦地找了一个晚上。。。。。。
现在已经是第二天中午了QAQ。
正当我打开 issue,想要像 vscode-cpptools 官方 repository 上报 issue 的时候,看到了官方的提示:上报 issue 之前,请关闭其他插件。看看是否是其他插件的影响。
上报 issue 之前,请关闭其他插件。看看是否是其他插件的影响。
上报 issue 之前,请关闭其他插件。看看是否是其他插件的影响。
上报 issue 之前,请关闭其他插件。看看是否是其他插件的影响。
卧槽,其实这个时候我都没怎么在意……因为另一个插件是我非常喜欢的 clang 的插件啊!虽然不是 clang 官方的(,叫 C/C++ Clang Command Adapter。是五星的插件啊!而且是个霓虹开发者开发的!OWO
然后我关了它。
竟然好了!!可以索引了!!
于是我看了下介绍……
这插件里边写的:
于是我跑到 settings.json
,加了一行这个:"clang.cxxflags": ["-std=c++11", "-I${workspaceRoot}/include"]
然后就好了……QAQ
然而这就比较诡异了……在点击头文件跳转的时候,关了微软官方的插件就不能跳转;关了 clang 插件,还是能够跳转。说明 clang 插件不对跳转有任何的作用;但是,只要没有配置 args,头文件就会出现红线报错,这时微软的插件检测到错误,也不会帮你跳转……卧槽。这是插件冲突的玄学吗……
emmmm。下次一定要注意,别因为印象好就单独开小灶……因为真正的错误往往藏在你放心的位置,然后耽误你大量的时间……QAQ。