从代码上说,clang结构更简单。因为clang只需要完成词法和语法分析,代码优化和机器代码的生成工作由llvm完成。所以和全部由自己包下的gcc比起来,clang可以更专注地做好一件事。
这种结构也使clang可以被单独拿出来用在其他的程序里。比如vim的clang_complete插件就是利用clang进行语法分析后给出精确的自动补全和语法错误提示的。而gcc就没法很方便地做到这一点。
在实用性方面,除了有更快的编译速度更快和更友好的出错提示外,clang还内置有静态分析工具,可以对代码进行静态分析(clang --analyze)。这也是gcc做不到的。
Google Chrome, Chromium浏览器已经换成Clang编译
出错提示很友好,gcc的那个错误提示就不是给人看的
Clang与GCC对比
本文对比了Clang和GCC的特点,Clang具有更简洁的结构,专注于词法和语法分析,而代码优化及机器码生成交由LLVM完成。这使得Clang能够提供更快的编译速度、更友好的错误提示,并且内置了静态分析工具。同时,Clang因其模块化的特性更容易集成到其他工具中。
1223

被折叠的 条评论
为什么被折叠?



