欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux gcc命令的具體使用

 更新時(shí)間:2020年02月19日 14:40:15   作者:滄海一笑-dj  
這篇文章主要介紹了Linux gcc命令的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

01. 命令概述

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

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

02. 命令格式

用法:gcc [選項(xiàng)] 文件...

03. 常用選項(xiàng)

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

04. 參考示例

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

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

將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認(rèn)輸出為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選項(xiàng)用來指定輸出文件的文件名。

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

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

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

4.4 編譯到匯編語(yǔ)言,不進(jìn)行匯編和鏈接

[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)代碼,不進(jìn)行鏈接

[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 編譯時(shí)指定優(yōu)化級(jí)別

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

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

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)容請(qǐng)搜素腳本之家以前的文章或下面相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法

    Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法

    當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。下面這篇文章主要給大家介紹了關(guān)于在Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-11-11
  • 給Linux定時(shí)備份數(shù)據(jù)庫(kù)的實(shí)現(xiàn)腳本

    給Linux定時(shí)備份數(shù)據(jù)庫(kù)的實(shí)現(xiàn)腳本

    這篇文章主要介紹了Linux定時(shí)備份數(shù)據(jù)庫(kù)實(shí)現(xiàn)方式,如果你的服務(wù)器數(shù)據(jù)庫(kù)需要實(shí)現(xiàn)每天定時(shí)備份,那么這篇文章會(huì)對(duì)你大有幫助,有需要的朋友可以借鑒參考下
    2021-09-09
  • 解決Linux+Apache服務(wù)器URL區(qū)分大小寫問題

    解決Linux+Apache服務(wù)器URL區(qū)分大小寫問題

    Linux服務(wù)器的大小寫敏感有時(shí)候很不方便,在地址欄里一定要輸入準(zhǔn)確的URL才能訪問,對(duì)搜索引擎和用戶不是很友好,那么如何解決LINUX服務(wù)器URL的大小寫問題
    2020-01-01
  • linux中誤刪除程序包恢復(fù)實(shí)例

    linux中誤刪除程序包恢復(fù)實(shí)例

    Linux 下的文件一旦被刪除,是難以恢復(fù)的。對(duì)于家庭單機(jī)使用的Linux ,或者誤刪文件后及時(shí)補(bǔ)救,還是可以恢復(fù)的。下面就來介紹一下。
    2016-10-10
  • Ubuntu下Docker CE的安裝

    Ubuntu下Docker CE的安裝

    今天小編就為大家分享一篇關(guān)于Ubuntu下Docker CE的安裝,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • apache正常訪問mht類型文件的配置方法

    apache正常訪問mht類型文件的配置方法

    這篇文章主要介紹了apache正常訪問mht類型文件的配置方法,需要的朋友可以參考下
    2014-04-04
  • Linux系統(tǒng)開機(jī)無(wú)限重啟的解決方案

    Linux系統(tǒng)開機(jī)無(wú)限重啟的解決方案

    這篇文章主要介紹了Linux系統(tǒng)開機(jī)無(wú)限重啟的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議

    新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議

    這篇文章主要為大家詳細(xì)介紹了新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • ubuntu如何安裝中文輸入法

    ubuntu如何安裝中文輸入法

    本篇文章主要介紹了ubuntu如何安裝中文輸入法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Linux上虛擬機(jī)顯示網(wǎng)絡(luò)不可用的解決方法

    Linux上虛擬機(jī)顯示網(wǎng)絡(luò)不可用的解決方法

    這篇文章主要介紹了Linux上虛擬機(jī)顯示網(wǎng)絡(luò)不可用的解決方法,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-12-12

最新評(píng)論