标签: gcc vim emacs autocomplete clang
为什么不使用gcc?它们之间的区别在哪里以及为什么几乎所有自动完成插件都需要clang?
答案 0 :(得分:0)
简单的答案是clang被设计为支持补全,而gcc不是。
Clang有一个命令行选项,可以在源文件中的给定点打印出可能的补全,这使得在脚本中易于使用:只需将外壳换成clang,解析其输出即可。海湾合作委员会没有可比的。
关于原因,请参见此list of differences between gcc and clang:
[...] 从一开始,Clang就被设计为API,从而允许源分析工具,重构,IDE(等)以及代码生成对其进行重用。 GCC是作为一个整体的静态编译器构建的,这使得它很难用作API并集成到其他工具中。此外,其历史性设计和current policy使得很难将前端与编译器的其余部分分离。
[...]