首页 > 其他 > 详细

Clang 与 GCC 编译器的简单比较

时间:2014-03-29 21:25:34      阅读:1110      评论:0      收藏:0      [点我收藏+]

主要整理自知乎上的一个讨论:

目前业界的三大主流C++编译器:VisualC++、g++、Clang++.其中VisualC++最主要的优势是图形化界面,调试方便,但是可用的平台非常有限。这里主要比对g++与Clang++.

Clang GCC 编译器的优势:

·        编译速度更快

·        编译产出更小

·        出错提示更友好,比如clang在编译过程可以直接指出相对简单的出错位置以及它认为正确的方式

·        内置有静态分析工具,可以对代码进行静态分析(clang—analyze)。这也是gcc做不到的

·        因为clang只需要完成词法和语法分析,代码优化和机器代码的生成工作由llvm完成。所以和全部由自己包下的gcc比起来,clang可以更专注地做好一件事。这种结构也使clang可以被单独拿出来用在其他的程序里,成为其它 app(主要是 IDE)的内嵌 C/C++ parser对于 IDE 而言,代码补全、重构是重要的功能,然而如果没有底层的支持,只使用 tags 分析或是正则表达式匹配是很难达成的,clang正好充当了这一角色。这样,editor 工具可以使用和 compiler 一样的 parser 来完成 edit-time 的语法检查gcc就没法很方便地做到这一点。由于历史原因,GCC 是一个单一的可执行程序编译器,其内部完成了从预处理到最后代码生成的全部过程,中间诸多信息都无法被其他程序重用。

 Gcc的优势:

·        一些软件用clang编译会出现莫名其妙的错误,但是用gcc编译可以通过

·        GCC5.0之前一直都在准备用C++实现模块化,期待GCC5.0会有所突破,补上无法模块化的短板。


Clang 与 GCC 编译器的简单比较,布布扣,bubuko.com

Clang 与 GCC 编译器的简单比较

原文:http://blog.csdn.net/davidwang9527/article/details/22506011

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!