自行查找资料, 调研除了gcc, 还有哪些常用的牛逼的编译器(不限制编程语言, 不限制平台)

1.除了gcc, 还有哪些常用的牛逼的编译器(不限制编程语言, 不限制平台) 

EGCS:包括了C/C++/Obj-C/Fortran等编译器 

Clang:licence极度友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,但是Clang依赖于的LLVM,目前的性能无法与GCC相提辩论,缺乏对GCC一些Builtin函数、自身带的汇编器的孱弱,对一些开源软件没有办法编译过去。

ICC:没有自己专门的前端(传说中的外包),而且是针对Intel体系结构上专门优化。

IBM XL C++:在IBM特定硬件与平台上表现非常牛逼,Benchmark性能测试非常优秀,但是在编译时间上过长,对C++标准的支持、开源软件的支持、错误信息的提示上都不够友好。

2.为什么调试的时候需要编译选项中添加 -g?

在 Linux 中,我们常用 gcc编译生成可执行文件, 但是可执行程序中没有可供 gdb 调试使用的特殊信息,无法使用 gdb 来跟踪或调试,因此我们需使用到 -g 选项,这样生成的可执行程序就可以使用 gdb 找出出现问题的位置,从而解决问题。

3. readelf命令

(1)readelf用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。

(2)选项

在 Linux 中输入 man readelf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值