濮阳杆衣贸易有限公司

主頁 > 知識庫 > Linux gcc命令的具體使用

Linux gcc命令的具體使用

熱門標(biāo)簽:網(wǎng)絡(luò)電話外呼系統(tǒng)開發(fā) 福州語音電銷機器人招商 外呼線路隨意切換嗎 淘寶辦理400電話是多少 滴滴急救中心地圖標(biāo)注 菏澤自動電銷機器人公司 北海智能電銷機器人公司 申請400電話收費標(biāo) 艾澤拉斯地圖標(biāo)注

01. 命令概述

gcc命令使用GNU推出的基于C/C++的編譯器,是開放源代碼領(lǐng)域應(yīng)用最廣泛的編譯器,具有功能強大,編譯代碼支持性能優(yōu)化等特點。

gcc是GNU編譯器套件(GNU Compiler Collection),它包括了C、C++、Objective-C、Fortran、Java、Ada、Go語言和D語言的前端,也包括了這些語言的庫(如libstdc++、libgcj等等)。GCC的初衷是為GNU操作系統(tǒng)專門編寫的一款編譯器。GNU系統(tǒng)是徹底的自由軟件。此處,“自由”的含義是它尊重用戶的自由。

02. 命令格式

用法:gcc [選項] 文件...

03. 常用選項

 -pass-exit-codes     在某一階段退出時返回最高的錯誤碼
 --help          顯示此幫助說明
 --target-help      顯示目標(biāo)機器特定的命令行選項
 --help={common|optimizers|params|target|warnings|[^]
 {joined|separate|undocumented}}[,...]
              顯示特定類型的命令行選項
 (使用‘-v --help'顯示子進程的命令行參數(shù))
 --version        顯示編譯器版本信息
 -dumpspecs        顯示所有內(nèi)建 spec 字符串
 -dumpversion       顯示編譯器的版本號
 -dumpmachine       顯示編譯器的目標(biāo)處理器
 -print-search-dirs    顯示編譯器的搜索路徑
 -print-libgcc-file-name 顯示編譯器伴隨庫的名稱
 -print-file-name=<庫>  顯示 <庫> 的完整路徑
 -print-prog-name=<程序> 顯示編譯器組件 <程序> 的完整路徑
 -print-multiarch     Display the target's normalized GNU triplet, used as
              a component in the library path
 -print-multi-directory  顯示不同版本 libgcc 的根目錄
 -print-multi-lib     顯示命令行選項和多個版本庫搜索路徑間的映射
 -print-multi-os-directory 顯示操作系統(tǒng)庫的相對路徑
 -print-sysroot      顯示目標(biāo)庫目錄
 -print-sysroot-headers-suffix 顯示用于尋找頭文件的 sysroot 后綴
 -Wa,<選項>        將逗號分隔的 <選項> 傳遞給匯編器
 -Wp,<選項>        將逗號分隔的 <選項> 傳遞給預(yù)處理器
 -Wl,<選項>        將逗號分隔的 <選項> 傳遞給鏈接器
 -Xassembler <參數(shù)>    將 <參數(shù)> 傳遞給匯編器
 -Xpreprocessor <參數(shù)>  將 <參數(shù)> 傳遞給預(yù)處理器
 -Xlinker <參數(shù)>     將 <參數(shù)> 傳遞給鏈接器
 -save-temps       不刪除中間文件
 -save-temps=<arg>    不刪除中間文件
 -no-canonical-prefixes  生成其他 gcc 組件的相對路徑時不生成規(guī)范化的
              前綴
 -pipe          使用管道代替臨時文件
 -time          為每個子進程計時
 -specs=<文件>      用 <文件> 的內(nèi)容覆蓋內(nèi)建的 specs 文件
 -std=<標(biāo)準(zhǔn)>       指定輸入源文件遵循的標(biāo)準(zhǔn)
 --sysroot=<目錄>     將 <目錄> 作為頭文件和庫文件的根目錄
 -B <目錄>        將 <目錄> 添加到編譯器的搜索路徑中
 -v            顯示編譯器調(diào)用的程序
 -###           與 -v 類似,但選項被引號括住,并且不執(zhí)行命令
 -E            僅作預(yù)處理,不進行編譯、匯編和鏈接
 -S            編譯到匯編語言,不進行匯編和鏈接
 -c            編譯、匯編到目標(biāo)代碼,不進行鏈接
 -o <文件>        輸出到 <文件>
 -pie           Create a position independent executable
 -shared         Create a shared library
 -x <語言>        指定其后輸入文件的語言
              允許的語言包括:c c++ assembler none
              ‘none'意味著恢復(fù)默認行為,即根據(jù)文件的擴展名猜測
              源文件的語言

04. 參考示例

4.1 生成默認的可執(zhí)行文件

[deng@localhost bak]$ gcc test.c 
[deng@localhost bak]$

將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認輸出為a.out。

4.2 指定輸出文件

[deng@localhost bak]$ gcc test.c -o test
[deng@localhost bak]$ ls
5th 6th 7th 8th 9th test test.c
[deng@localhost bak]$ 
 

將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件test。-o選項用來指定輸出文件的文件名。

4.3 僅作預(yù)處理,不進行編譯、匯編和鏈接

[deng@localhost bak]$ gcc -E test.c -o test.i 
[deng@localhost bak]$ 

將test.c預(yù)處理輸出test.i文件。

4.4 編譯到匯編語言,不進行匯編和鏈接

[deng@localhost bak]$ gcc -S test.c -o test.s
[deng@localhost bak]$ ls
5th 6th 7th 8th 9th test test.c test.i test.s
[deng@localhost bak]$ 

將預(yù)處理輸出文件test.i匯編成test.s文件。

4.5 編譯、匯編到目標(biāo)代碼,不進行鏈接

[deng@localhost bak]$ gcc -c test.c -o test.o
[deng@localhost bak]$ ls
5th 6th 7th 8th 9th test test.c test.i test.o test.s
[deng@localhost bak]$ 

4.6 將目標(biāo)代碼生成可執(zhí)行文件

[deng@localhost bak]$ gcc test.o -o test
[deng@localhost bak]$ 

將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。

4.7 編譯時指定優(yōu)化級別

[deng@localhost bak]$ gcc -O1 test.c -o test
[deng@localhost bak]$ 

使用編譯優(yōu)化級別1編譯程序。級別為1~3,級別越大優(yōu)化效果越好,但編譯時間越長。

4.8 多文件編譯

[deng@localhost bak]$ gcc testfun.c test.c -o test
[deng@localhost bak]$ 

將testfun.c和test.c分別編譯后鏈接成test可執(zhí)行文件。

4.9 多文件編譯方法二

[deng@localhost bak]$ gcc -c test.c  
[deng@localhost bak]$ gcc -c testfun.c  
[deng@localhost bak]$ gcc test.o testfun.o -o test
[deng@localhost bak]$ 

到此這篇關(guān)于Linux gcc命令的具體使用的文章就介紹到這了,更多相關(guān)Linux gcc命令內(nèi)容請搜素腳本之家以前的文章或下面相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:混顯 亳州 資陽 滄州 延安 三沙 丹東 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux gcc命令的具體使用》,本文關(guān)鍵詞  Linux,gcc,命令,的,具體,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux gcc命令的具體使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux gcc命令的具體使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宜章县| 崇仁县| 香河县| 贵港市| 右玉县| 泌阳县| 都匀市| 独山县| 沈丘县| 鸡泽县| 竹北市| 渝北区| 全南县| 富川| 吴忠市| 巴楚县| 南川市| 灌云县| 灯塔市| 房山区| 定边县| 平昌县| 磐安县| 乌拉特中旗| 通州区| 兰溪市| 沛县| 凉城县| 城固县| 佛教| 潍坊市| 湖州市| 顺平县| 平安县| 沙湾县| 兴仁县| 安溪县| 长武县| 腾冲县| 铁岭县| 丰城市|