詳細(xì)介紹Linux GCC系統(tǒng)靜態(tài)鏈接
在向大家詳細(xì)介紹Linux GCC之前,首先讓大家了解下GCC,然后全面介紹Linux GCC,希望對(duì)大家有用。Linux是由開發(fā)工具軟件、編輯器軟件、CPU圖形用戶界面、網(wǎng)絡(luò)工具軟件等組成的一個(gè)完整的軟件包。Linux GCC下的庫文件在命名時(shí)有一個(gè)約定,那就是應(yīng)該以lib三個(gè)字母開頭,由于所有的庫文件都遵循了同樣的規(guī)范,因此在用-l選項(xiàng)指定鏈接的庫文件名時(shí)可以省去lib三個(gè)字母。
也就是說Linux GCC在對(duì)-lfoo進(jìn)行處理時(shí),會(huì)自動(dòng)去鏈接名為libfoo.so的文件。
-static選項(xiàng),強(qiáng)制使用靜態(tài)鏈接庫
如果在/home/xiaowp/lib/目錄下有鏈接時(shí)所需要的庫文件libfoo.so和libfoo.a 為了讓Linux GCC在鏈接時(shí)只用到靜態(tài)鏈接庫,可以使用下面的命令:
cc -o test test.c -L /home/xiaowp/lib -static -lfoo
選項(xiàng)-O可以告訴Linux GCC同時(shí)減小代碼的長度和執(zhí)行時(shí)間,其效果等價(jià)于-O1。
在這一級(jí)別上能夠進(jìn)行的優(yōu)化類型雖然取決于目標(biāo)處理器,但一般都會(huì)包括線程跳轉(zhuǎn)(Thread Jump)和延遲退棧(Deferred Stack Pops)兩種優(yōu)化。
選項(xiàng)-O2告訴Linux GCC除了完成所有-O1級(jí)別的優(yōu)化之外,同時(shí)還要進(jìn)行一些額外的調(diào)整工作,如處理器指令調(diào)度等。
選項(xiàng)-O3則除了完成所有-O2級(jí)別的優(yōu)化之外,還包括循環(huán)展開和其它一些與處理器特性相關(guān)的優(yōu)化工作。
通常來說,數(shù)字越大優(yōu)化的等級(jí)越高,同時(shí)也就意味著程序的運(yùn)行速度越快。以上是Linux GCC系統(tǒng)命令。
【編輯推薦】