日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 中gcc运行命令,Linux gcc命令的具体使用

發(fā)布時間:2024/3/24 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 中gcc运行命令,Linux gcc命令的具体使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

01. 命令概述

gcc命令使用GNU推出的基于C/C++的編譯器,是開放源代碼領(lǐ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 顯示目標機器特定的命令行選項

--help={common|optimizers|params|target|warnings|[^]

{joined|separate|undocumented}}[,...]

顯示特定類型的命令行選項

(使用‘-v --help'顯示子進程的命令行參數(shù))

--version 顯示編譯器版本信息

-dumpspecs 顯示所有內(nèi)建 spec 字符串

-dumpversion 顯示編譯器的版本號

-dumpmachine 顯示編譯器的目標處理器

-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 顯示目標庫目錄

-print-sysroot-headers-suffix 顯示用于尋找頭文件的 sysroot 后綴

-Wa, 將逗號分隔的 傳遞給匯編器

-Wp, 將逗號分隔的 傳遞給預處理器

-Wl, 將逗號分隔的 傳遞給鏈接器

-Xassembler 將 傳遞給匯編器

-Xpreprocessor 將 傳遞給預處理器

-Xlinker 將 傳遞給鏈接器

-save-temps 不刪除中間文件

-save-temps= 不刪除中間文件

-no-canonical-prefixes 生成其他 gcc 組件的相對路徑時不生成規(guī)范化的

前綴

-pipe 使用管道代替臨時文件

-time 為每個子進程計時

-specs= 用 的內(nèi)容覆蓋內(nèi)建的 specs 文件

-std= 指定輸入源文件遵循的標準

--sysroot= 將 作為頭文件和庫文件的根目錄

-B 將 添加到編譯器的搜索路徑中

-v 顯示編譯器調(diào)用的程序

-### 與 -v 類似,但選項被引號括住,并且不執(zhí)行命令

-E 僅作預處理,不進行編譯、匯編和鏈接

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

-c 編譯、匯編到目標代碼,不進行鏈接

-o 輸出到

-pie Create a position independent executable

-shared Create a shared library

-x 指定其后輸入文件的語言

允許的語言包括:c c++ assembler none

‘none'意味著恢復默認行為,即根據(jù)文件的擴展名猜測

源文件的語言

04. 參考示例

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

[deng@localhost bak]$ gcc test.c

[deng@localhost bak]$

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

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

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

[deng@localhost bak]$

將test.c預處理輸出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]$

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

4.5 編譯、匯編到目標代碼,不進行鏈接

[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 將目標代碼生成可執(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)文章,希望大家以后多多支持腳本之家!

總結(jié)

以上是生活随笔為你收集整理的linux 中gcc运行命令,Linux gcc命令的具体使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。