国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Linux系統(tǒng)下gcc命令使用詳解

瀏覽:51日期:2023-03-07 14:40:09
目錄
  • 一.預(yù)處理
  • 二. 編譯
  • 三.匯編
  • 四.鏈接

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

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

讓我們?cè)谕ㄟ^(guò)gcc編譯可執(zhí)行文件的過(guò)程中掌握其基礎(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);	}}

(每次我們用 cat 查看)

一.預(yù)處理

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

2.命令:

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

或者:

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

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

gcc -E 666.c -o 666.i

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

二. 編譯

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

2.命令:

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

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

三.匯編

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

2.命令:

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

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

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

四.鏈接

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

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

假如沒(méi)有動(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

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

到此這篇關(guān)于Linux系統(tǒng)下gcc命令使用詳解的文章就介紹到這了,更多相關(guān)Linux gcc命令內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: Linux Apache
主站蜘蛛池模板: 洛扎县| 嘉黎县| 哈密市| 讷河市| 廊坊市| 肥西县| 乌拉特后旗| 建水县| 鄯善县| 兴仁县| 体育| 那坡县| 长宁县| 平阴县| 彝良县| 洪泽县| 永春县| 岳阳县| 鹤庆县| 读书| 哈密市| 金乡县| 天全县| 马关县| 昌都县| 盐津县| 宁阳县| 平遥县| 改则县| 唐河县| 当涂县| 石阡县| 上高县| 山西省| 尼玛县| 治多县| 清水河县| 南召县| 漳浦县| 溧阳市| 武宣县|