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的一個重要原因。