目錄
1.gcc的安裝(以ubuntu為例) sudo apt-get install build-essential
安裝完後可以通過 gcc --version 檢視版本。
讓我們在通過gcc編譯可執行檔案的過程中掌握其基礎應用。
準備: 先在當前目錄下 使用vim新建乙個.c檔案 例如 666.c
$ vim 666.c
(vim的使用可在我的另一篇部落格有詳細的敘述,這裡不多在贅述)
插入一段**。
#include
main()
}(每次我們用 cat 檢視)
1.預處理通過對巨集定義(像#define)進行展開,對頭檔案(像 stdio.h)進行展開,對條件進行(像ifdef)編譯,展開所有巨集,刪除所有注釋(像"//").預處理cpp把源**,標頭檔案預編成乙個.i檔案。(注意這時並不檢查語法,所以即使有語法錯誤也不會報錯。)
2.命令:
$ gcc -e (源檔名) -o (預處理檔名)
或者:$ gcc (源檔名) > (預處理檔名)
例如按666.c 來說,預處理時可以是 :
gcc -ewww.cppcns.com 666.c -o 666.i
也可以是 gcc 666.c > 666.i
1.編譯也就是檢查語法是否錯誤,將預處理過的檔案編譯成彙編檔案。
2.命令:
$ gcc -s (原始檔) -o (彙編檔案)
例如 gcc -s 666.i -o 666.s
www.cppcns.com1. 彙編也就是將彙編檔案生成目標檔案(二進位制檔案)通過彙編,文字zbvsnntiy**變成了二進位制**。(二進位制**檔案以.o為字尾名)。
2.命令:
$ gcc -c (彙編檔案) -o (目標檔案)
例如 gcc -c 666.s -o 666.o
(這時候因為是二進位制檔案了,所以會亂碼)
1. 鏈結找到依賴的庫檔案(靜態與動態),將目標檔案鏈結為可執行程式。
$程式設計客棧 gcc -c [目標檔案] -o [可執行程式] -l[動態庫名]
假如沒有動態庫的話(一般)
直接$ gcc -c [目標檔案] -o [可執行程式]
例如 gcc -c 666.o -o 666
此時會生成可執行程式 666
如果想執行使用該命令:
$ ./可執行程式
其中./是在當前目錄下的意思。
例如 ./666
(注意:在一般我們使用時 如果使用 gcc 可執行檔名,會預設生成a.out 可執行檔案,這時我們直接執行它時用 ./a.out )
linux下gcc命令筆記
首先介紹一下gcc各種引數的含義 o 指定生成的輸出檔案 e 僅執行編譯預處理 s 將c 轉換為彙編 wall 顯示警告資訊 c 僅執行編譯操作,不進行連線操作。1 gcc c fpic c 生成與位置無關的 o 檔案 目標檔案 fpic表明使用位址無關 2 gcc shared wl o libm...
linux 下gcc的使用
在linux系統中,可執行檔案沒有統一的字尾,系統從檔案的屬性來區分可執行檔案和不可執行檔案。而gcc則通過字尾來區別輸入檔案的類別,下面介紹gcc所遵循的部分約定規則。c為字尾的檔案,c語言源 檔案 a為字尾的檔案,是由目標檔案構成的庫檔案 c,cc或.cxx 為字尾的檔案,是c 源 檔案 h為字...
linux 下gcc的使用
在linux系統中,可執行檔案沒有統一的字尾,系統從檔案的屬性來區分可執行檔案和不可執行檔案。而gcc則通過字尾來區別輸入檔案的類別,下面介紹gcc所遵循的部分約定規則。c為字尾的檔案,c語言源 檔案 a為字尾的檔案,是由目標檔案構成的庫檔案 c,cc或.cxx 為字尾的檔案,是c 源 檔案 h為字...