1.linux gcc常用命令
無選項
gcc test.c
將test.c預先處理、彙編、編譯並連結形成可執行檔
-o 檔案名稱
編譯為目標代碼
-c
只編譯源檔案不連結,例如:gcc –c test.s,可以將彙編檔案輸出為test.o檔案
-S
產生彙編代碼
-E
將程式預先處理輸出為.i檔案,例如: gcc –E test.c–o test.i
gcc 檔案名稱1 檔案名稱2 –o 檔案名稱
多個程式檔案的編譯,例如:gcctest1.c test2.c –o test
編譯多個程式檔案,也可以用
gcc –c test1.c
gcc –c test2.c
gcc –o test1.o –o test2.otest
-D FOO=X
在命令列定義預先處理宏FOO,其值為X
-I dir
添加標頭檔搜尋路徑
-L dir
添加庫檔案搜尋路徑
-static
連結靜態庫
-library
連結庫檔案
-g
在可執行程式中包含標準調試資訊
-ggdb
產生調試資訊,僅供gnu識別
-O 數字
指定代碼最佳化的層級為N,0<=N<=3. –O1告訴編譯器進行第一級最佳化,通常提高最佳化層級會使得程式啟動並執行更快,但是編譯的時間會變長,用調試工具偵錯工具變得更加困難,使用更高的層級最佳化代碼,使得產生的機器代碼難以理解。
-ansi
支援ANSI/ISO C的標準文法
-pedantic
允許發出ANSI/ISO C標準所列出的所有警告
-pedantic -errors
允許發出ANSI/ISO C標準所列出的所有錯誤
-traditional
支援K&R C文法;
-w
關閉所有警告
-Wall
允許發出gcc能提供的所有有用的警告
-werror
把所有警告轉換為錯誤,在警告發生時中止編譯過程
2.gcc約定的檔案名稱尾碼:
.c C語言原始碼檔案
.a 目標檔案構成的庫檔案
.cc C++原始碼檔案
.i 預先處理產生的檔案
.ii 預先處理產生的C++原始碼檔案
.o 目標檔案
.s 彙編代碼檔案
3.ubuntu編譯C++程式
先在ubuntu中安裝g++,使用命令sudo apt-get sudo g++
然後寫程式原始碼,存為.cpp檔案,使用命令gcc –o 目標檔案名 檔案名稱,產生.out檔案後,就可以用.out檔案執行程式了。如:
# include <iostream>
using namespace std;
int main()
{
cout<<”hello world”<<endl;
return 0;
}
儲存為hello.cpp,然後使用g++ -o hello hello.cpp,
然後執行./hello,即可輸出hello,world