gcc编译时间
A. 技术分享| gcc版本升级到5.2
GCC,即GNU Compiler Collection,是一款广泛使用的开源编译器集合,支持多种编程语言,如C、C++、Objective-C和Fortran等。在不同版本中,GCC提供了新功能、改进和修复。从GCC 4.8.5升级到GCC 5.2.0,以下是一些可能的变化和改进。
当前版本:gcc version 4.8.5 (GCC)
升级版本:gcc version 5.2.0 (GCC)
在升级过程中,需要注意的是环境准备和安装步骤。在无网络环境下,首先手动下载download_prerequisites中包含的依赖包至gcc-5.2.0目录,并在download_prerequisites文件中删除wget相关的注释,执行./contrib/download_prerequisites。
接着进行编译安装,配置相关参数,如果是多核服务器,推荐使用-j4参数,这里需要注意,编译过程可能需要一定时间,需耐心等待。编译完成后,开始安装,库文件默认存放在/usr/local/lib64,bin文件存放在/usr/local/bin。通过查看最新版本的gcc,确认版本是否为5.2.0,以此判断安装是否成功。若发现gcc版本未更新,但g++版本已更新,可能需要重启服务器。最后再次查看gcc版本,确保升级顺利。
B. gcc鍜宎rmcc缂栬疟鏁堢巼
镙规嵁CSDN瀹樼绣镆ヨgcc鍜宎rmcc镄勭紪璇戞晥鐜囩ず渚嫔缑鐭ャ
1銆佺ず渚嬩腑鍦╩0涓婂仛浜嗕竴涓瀹为獙锛屼娇鐢ㄥ悓镙风殑浠g爜瑙﹀彂pendsv涓鏂锛宎rmcc镄勫搷搴旀椂闂翠负68clocks锛実cc镄勫搷搴旀椂闂翠负78clocks銆
2銆佸ぇ镄勬搷浣灭郴缁燂纴gcc寮婧愬彲鎺у厤璐逛娇鐢ㄥ箍娉涳纴鍙缂栬疟鍑烘潵镄勬眹缂栦唬镰侊纴娌℃湁armcc镄勭簿绠銆傚逛簬瀹炴椂镐ц佹眰寰堥珮镄勬搷浣灭郴缁燂纴杩樻槸阃夋嫨armcc姣旇缉钖堥傦纴铏界劧armcc涓嶅紑婧愶纴涓嶅厤璐癸纴涓嶅彲鎺э纴浣嗘槸浠g爜镓ц屾晥鐜囨洿楂樸
C. Clang 比 GCC 编译器好在哪里
编译速度更快、编译产出更小、出错提示更友好。尤其是在比较极端的情况下。
两年多前曾经写过一个Scheme解释器,词法分析和语法解析部分大约2000行,用的是Boost.Spirit——一个重度依赖C++模版元编程的框架。当时拦姿孝用g++ 4.2编译的情况是:
1.编译速度极慢:完整编译一次需要20分钟
2.编译过程中内存消耗极大:单个g++实例内存峰值消耗超过1G
3.中间产出物极大:编译出的所有.o文件加在一起大约1~2G,debug链接产物超过200M
4.编译错误极其难以理解:编译错误经常长达几十K,基本不可读,最要命的是编译错误经常会长到被g++截断,看不到真正出错的位置,基本上只能靠裸看代码来调试
这里先不论我使用Spirit的方式是不是有问题,或者Spirit框架自身的问题。我当时因为实在忍受不了g++,转而尝试clang。当时用的是clang 2.8,刚刚可以完整编译Boost,效果让我很满意:
1.编译速度有显着提升,记得大约是g++的1/3或1/4
2.编译过程中的内存消耗差别好像不大
3.中间产出物及最终链接产物,记得也是g++的1/3或1/4
4.相较于g++,编译错误可读性有所飞跃,至少不会出现编译错误过长被截断的问题了
当时最大的缺点是clang编译出的可执行文件无法用gdb调试,需要用调试器的时候还得用g++再编译一遍。不过这个问题后来解决了,我不知道是clang支持了gdb还是gdb支持了clang。至少我当前在Ubuntu下用clang 3.0编译出的二进制文件已经可以顺利用gdb调试了册羡。
最后一点,其他同学也有讲到,就是Clang采用的简稿是BSD协议。这是苹果资助LLVM、FreeBSD淘汰GCC换用Clang的一个重要原因。