为什么clang在vim和emacs中用于自动完成?

时间:2016-06-27 14:28:29

标签: gcc vim emacs autocomplete clang

为什么不使用gcc?它们之间的区别在哪里以及为什么几乎所有自动完成插件都需要clang?

1 个答案:

答案 0 :(得分:0)

简单的答案是clang被设计为支持补全,而gcc不是。

Clang有一个命令行选项,可以在源文件中的给定点打印出可能的补全,这使得在脚本中易于使用:只需将外壳换成clang,解析其输出即可。海湾合作委员会没有可比的。

关于原因,请参见此list of differences between gcc and clang

  

[...]

     
      
  • 从一开始,Clang就被设计为API,从而允许源分析工具,重构,IDE(等)以及代码生成对其进行重用。 GCC是作为一个整体的静态编译器构建的,这使得它很难用作API并集成到其他工具中。此外,其历史性设计和current policy使得很难将前端与编译器的其余部分分离。
  •