博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
clang, gcc, gdb
阅读量:6092 次
发布时间:2019-06-20

本文共 992 字,大约阅读时间需要 3 分钟。

 

Clang 比 GCC 编译器的优势:

1 编译速度更快

2 编译产出更小

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

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

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

 Gcc 的优势:

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

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

 

Pro's of GCC vs clang:

  • GCC supports languages that clang does not aim to, such as Java, Ada, FORTRAN, Go, etc.
  • GCC supports more targets than LLVM.
  • GCC supports many language extensions, some of which are not implemented by Clang. For instance, in C mode, GCC supports  and has an .

 

转载于:https://www.cnblogs.com/butterflybay/p/10347906.html

你可能感兴趣的文章
安卓作业4.6
查看>>
20135306黄韧 第八章学习总结
查看>>
项目杂记——超链接里传参
查看>>
How to copy the contents of std::vector to c-style static array,safely?
查看>>
对thinkphp5.0框架的实例学习
查看>>
xml解析 DOM(JAXP Crimson解析器)
查看>>
code mistake
查看>>
c#与SQL中 double 与 float
查看>>
类样式操作
查看>>
SQL中的连接可以分为内连接,外连接,以及交叉连接 。
查看>>
请把我风干成你的回忆
查看>>
Python&HDF5目录
查看>>
Vue -- 双向过滤器去除html标签
查看>>
H5禁止底部横向滚动条,使一个元素居中
查看>>
android 的安全问题
查看>>
skatebroads
查看>>
一些常用的命令和cheat sheet
查看>>
转----------数据库常见笔试面试题 - Hectorhua的专栏 - CSDN博客
查看>>
Android 界面设计 java.lang.NullPointerException 异常的解决方法
查看>>
解决ctrl+shift+F快捷键eclipse格式化与输入法简繁转换冲突问题
查看>>