linux 系統中最重要的軟體開發工具是 gcc,在 linux 系統中,c89、cc 和 gcc 這些命令基本上都指向系統的c語言編譯器,通常是gnu c編譯器,或都簡稱 gcc。在 unix 系統中,c 語言編譯器稱為 cc。實際上,gcc 能夠編譯三種語言:c、c++ 和 object c(c 語言的一種物件導向擴充套件)。利用 gcc 命令可同時編譯並連線 c 和 c++ 源程式,一般來說,c 編譯器通過原始檔的字尾名來判斷是 c 程式還是 c++ 程式。在 linux 中,c 原始檔的字尾名為 .c,而 c++ 原始檔的字尾名為 .c 或 .cpp。對於 c++ 程式,gcc 命令只能編譯 c++ 原始檔,而不能自動和 c++ 程式使用的庫連線。因此,通常可以使用 g++ 命令來完成 c++ 程式的編譯和連線,該程式會自動呼叫 gcc 實現編譯。本人一直都是在 linux系統編譯 c程式的,就 gcc 命令列的作用記錄下來。
首先通過編寫、編譯和執行乙個 helloworld 程式例項開始哦
一、源**
/* hello.c */
#include
#include
int main(void)
二、 編譯、鏈結和執行程式
#gcc -o hello hello.c
#./hello
hello world!
命令選項的作用:
-o place the output into
如:#gcc -o file file.c
-o 告訴編譯器將可執行程式放在何處,如果沒有指定檔名稱,編譯器則會把程式放在乙個名為a.out的檔案裡(a.out的含義是 assembler output,即彙編輸出)。
-c compile and assemble, but do not link
如:#gcc -c file.c
-c 告訴編譯器僅把源**編譯為目標模組(file.o)而跳過彙編和連線的步驟。在使用-c生成目標模組後,就可以通過-o選項來生成可執行檔案。如:#gcc -o file file1.o file2.o 可以是多個目標模組。
-l和-l
指示編譯器程式要鏈結的庫。其中-l要增加庫的搜尋路徑。如:hello.so動態庫放在/usr/cprimer目錄下,那就是 -l/user/cprimer
-o如:#gcc file.c -o2,
用來優化程式用的。優化程式,執行速度可能也有所提高,從未真正測試過。
-include
-include 告訴編譯器需要包含標頭檔案,但一般情況下包含標頭檔案都在原始碼裡用#include ******實現,一般很少用這個選項。
gcc編譯器命令使用詳解
1。gcc 包含的c c 編譯器 gcc,cc,c g gcc和cc是一樣的,c 和g 是一樣的,沒有看太明白前面這半句是什 麼意思 一般c程式就用gcc編譯,c 程式就用g 編譯 2。gcc的基本用法 gcc test.c這樣將編譯出乙個名為a.out的程式 gcc test.c o test這樣...
通過GCC編譯器編譯c語言
可以利用gcc的引數來控制執行的過程,這樣就可以更深入的了解編譯c程式的過程。下面將通過對乙個程式的編譯來演示整個過程。include int main 1 預處理 編譯器將c程式的標頭檔案編譯進來,還有巨集的替換,可以用gcc的引數 e來參看。作用 將hello.c預處理輸出hello.i 2 編...
C語言基礎 GCC編譯器
預處理 pre processing 編譯 compiling 彙編 assembling 鏈結 linking 編譯器通過程式的副檔名來分辯編寫源程式所用的語言。由於不同的程式所需要執行編譯的步驟是不同的,因此gcc根據不同的字尾名對它們進行相應處理。後 綴 名 所對應的語言 編 譯 流 程 cc...