本机环境:
- 系统:windows
- 编译器:mingw-w64
用sublime text写c/cpp,推荐的代码补全插件是EasyClangComplete(相较之下另一个补全插件ClangAutoComplete更早停止维护,且其作者也推荐转用EasyClangComplete)。
安装EasyClangComplete后,还需要安装clang(包含在llvm中)并手动配置插件的inlcude路径(即头文件路径)。
安装llvm直接去它的github release页面,对于windows机器来说直接下载后缀win32(32位)或win64(64位)的exe安装包即可。
clang的相关知识强烈推荐该教程!
接着是在插件配置中手动添加c/cpp的头文件路径。由于我的实际编译环境是mingw-w64,即gcc工具链而不是msvc,因此以下部分将用gcc的方式寻找其头文件路径(所以这部分对linux机器也适用)。
gcc查找头文件路径有多种大同小异的方式,最推荐的方式如下:
- C头文件:
echo | gcc -x c -E -v -
- C++头文件:
echo | gcc -x c++ -E -v -
参考链接 - stackoverflow - 1
参考链接 - stackoverflow - 2
参考链接 - gcc参数手册
实测上面的命令在cmd和powershell中均可运行,参数具体含义见上方参考链接1。(原文中-xc
和-xc++
中间没空格,但实际上它们的含义是-x
后面接不同的参数,为了提高可读性我这里手动加了两个空格)参考链接2中也给出了一些类似效果的命令,但适用性没有这里的强,有的在powershell中会报错,好奇心重的可以看看。
下面是在我机器上分别运行两个命令的输出结果:
可以看到后一个(cpp路径)是前一个(c路径)的超集,图二的六个路径中前三个是cpp的头文件路径,后三个其实就是c的头文件路径,所以实际上只运行第二个命令直接找cpp的头文件就行了,默认就会包含c。
把找到的六个路径添加到EasyClangComplete的配置文件中(sublime->preferences->package settings->easyclangcomplete->settings),在用户配置文件中按照官方样例添加路径:
(注意:1,路径使用双反斜杠\\或单正斜杠/都可以识别;2,为了可读性可以把原始路径的/../手动删一删;3,记得在最外面加一对大括号,不然会触发sublime的语法报错)
然后就可以愉快地在sublime中使用c/cpp的代码补全啦~