溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)下gcc命令怎么使用

發(fā)布時(shí)間:2022-01-04 10:28:18 來源:億速云 閱讀:204 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Linux系統(tǒng)下gcc命令怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux系統(tǒng)下gcc命令怎么使用”吧!

1.gcc的安裝(以Ubuntu為例) sudo apt-get install build-essential

安裝完后可以通過 gcc --version 查看版本。

讓我們?cè)谕ㄟ^gcc編譯可執(zhí)行文件的過程中掌握其基礎(chǔ)應(yīng)用。

準(zhǔn)備: 先在當(dāng)前目錄下 使用vim新建一個(gè).c文件 例如 666.c

$ vim 666.c

(vim的使用可在我的另一篇博客有詳細(xì)的敘述,這里不多在贅述)

插入一段代碼。

#include <stdio.h>
main()
{
	int a,i;
	a=6;
	for(i=0;i<3;i++)
	{
		printf("%d",a);
	}
}

Linux系統(tǒng)下gcc命令怎么使用

(每次我們用 cat 查看)

一.預(yù)處理

1.預(yù)處理通過對(duì)宏定義(像#define)進(jìn)行展開,對(duì)頭文件(像 stdio.h)進(jìn)行展開,對(duì)條件進(jìn)行(像ifdef)編譯,展開所有宏,刪除所有注釋(像"//").預(yù)處理cpp把源代碼,頭文件預(yù)編成一個(gè).i文件。(注意這時(shí)并不檢查語法,所以即使有語法錯(cuò)誤也不會(huì)報(bào)錯(cuò)。)

  2.命令:

$ gcc -E (源文件名) -o (預(yù)處理文件名)

或者:

$ gcc (源文件名) > (預(yù)處理文件名)

  例如按666.c 來說,預(yù)處理時(shí)可以是 :

  gcc -E 666.c -o 666.i

  也可以是 gcc 666.c > 666.i

Linux系統(tǒng)下gcc命令怎么使用

二. 編譯

   1.編譯也就是檢查語法是否錯(cuò)誤,將預(yù)處理過的文件編譯成匯編文件。

   2.命令:

$ gcc -S (源文件) -o (匯編文件)

  例如 gcc -S 666.i -o 666.s

Linux系統(tǒng)下gcc命令怎么使用

三.匯編

1. 匯編也就是將匯編文件生成目標(biāo)文件(二進(jìn)制文件)通過匯編,文本代碼變成了二進(jìn)制代碼。(二進(jìn)制代碼文件以.o為后綴名)。

2.命令:

$ gcc -c (匯編文件) -o (目標(biāo)文件)

例如 gcc -c 666.s -o 666.o

Linux系統(tǒng)下gcc命令怎么使用

(這時(shí)候因?yàn)槭嵌M(jìn)制文件了,所以會(huì)亂碼)

四.鏈接

1. 鏈接找到依賴的庫(kù)文件(靜態(tài)與動(dòng)態(tài)),將目標(biāo)文件鏈接為可執(zhí)行程序。

$ gcc -c [目標(biāo)文件] -o [可執(zhí)行程序] -l[動(dòng)態(tài)庫(kù)名]

假如沒有動(dòng)態(tài)庫(kù)的話(一般)

直接

$ gcc -c [目標(biāo)文件] -o [可執(zhí)行程序]

例如 gcc -c 666.o -o 666

此時(shí)會(huì)生成可執(zhí)行程序 666

如果想執(zhí)行使用該命令:

$ ./可執(zhí)行程序

其中./是在當(dāng)前目錄下的意思。

例如 ./666

Linux系統(tǒng)下gcc命令怎么使用

(注意:在一般我們使用時(shí) 如果使用 gcc 可執(zhí)行文件名,會(huì)默認(rèn)生成a.out 可執(zhí)行文件,這時(shí)我們直接執(zhí)行它時(shí)用 ./a.out )

感謝各位的閱讀,以上就是“Linux系統(tǒng)下gcc命令怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Linux系統(tǒng)下gcc命令怎么使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI