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

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

 更新時(shí)間:2022年01月04日 08:45:00   作者:lucky_starr  
大家好,本篇文章主要講的是Linux系統(tǒng)下gcc命令使用詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

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)所有宏,刪除所有注釋(像"//").預(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. 鏈接找到依賴的庫(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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux下解壓.tar.xz格式文件的方法

    Linux下解壓.tar.xz格式文件的方法

    最近下載到了一份tar.xz結(jié)尾的壓縮文件,網(wǎng)上解決的方法比較少,所以決定將解決的方法總結(jié)下來(lái),這篇文章主要給大家介紹了在Linux下解壓.tar.xz格式文件的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-05-05
  • Apache 內(nèi)容動(dòng)態(tài)緩沖模塊 mod_cache應(yīng)用

    Apache 內(nèi)容動(dòng)態(tài)緩沖模塊 mod_cache應(yīng)用

    mod_cache是apache中基于URI鍵的內(nèi)容動(dòng)態(tài)緩沖(內(nèi)存或磁盤),從Apache2.2起,mod_cache和mod_file_cache將不再是試驗(yàn)?zāi)K,它們已經(jīng)足夠穩(wěn)定,可以用于實(shí)際生產(chǎn)中了。
    2013-10-10
  • Apache Thrift環(huán)境配置

    Apache Thrift環(huán)境配置

    這篇文章主要介紹了Apache Thrift環(huán)境配置的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Linux 詳解 /var/log/xferlog的各個(gè)字段解析

    Linux 詳解 /var/log/xferlog的各個(gè)字段解析

    這篇文章主要介紹了Linux 詳解 /var/log/xferlog的各個(gè)字段解析的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Ubuntu基礎(chǔ)設(shè)定:openssh-server的安裝和使用介紹

    Ubuntu基礎(chǔ)設(shè)定:openssh-server的安裝和使用介紹

    今天小編就為大家分享一篇關(guān)于Ubuntu基礎(chǔ)設(shè)定:openssh-server的安裝和使用介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • 覆蓋原先的PATH導(dǎo)致命令失效提示command not found的解決方法

    覆蓋原先的PATH導(dǎo)致命令失效提示command not found的解決方法

    今天小編就為大家分享一篇關(guān)于覆蓋原先的PATH導(dǎo)致命令失效提示command not found的解決方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 解讀Linux下ip命令展示的網(wǎng)絡(luò)連接信息

    解讀Linux下ip命令展示的網(wǎng)絡(luò)連接信息

    這篇文章主要給大家介紹了關(guān)于Linux下解讀ip命令展示的網(wǎng)絡(luò)連接信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧。
    2018-03-03
  • Windows 10 太難用如何定制你的 Ubuntu方法詳解

    Windows 10 太難用如何定制你的 Ubuntu方法詳解

    這篇文章主要介紹了Windows 10 太難用,如何定制你的 Ubuntu,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Apache訪問(wèn)日志的配置與使用

    Apache訪問(wèn)日志的配置與使用

    本文主要是在linux下設(shè)置apache的httpd.conf配置文件,實(shí)現(xiàn)記錄自己想要記錄的web訪問(wèn)日志,如客戶機(jī)IP、連接的日期和時(shí)間、響應(yīng)請(qǐng)求的狀態(tài)代碼等等。
    2018-05-05
  • Linux系統(tǒng)運(yùn)行級(jí)別詳細(xì)介紹

    Linux系統(tǒng)運(yùn)行級(jí)別詳細(xì)介紹

    大家好,本篇文章主要講的是Linux系統(tǒng)運(yùn)行級(jí)別詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評(píng)論