gcc & g++現在是gnu中最主要和最流行的c & c++編譯器 。
g++是c++的命令,以.cpp為主,對於c語言字尾名一般為.c。這時候命令換做gcc即可。其實是無關緊要的。
其實編譯器是根據gcc還是g++來確定是按照c標準還是c++標準編譯鏈結。
下面以test.cpp為例:
命令: g++ test.cpp
功能:生成預設為a.exe的檔案,這個過程包含了編譯和鏈結。
再說下-o命令,-o命令表示輸出的意思,gcc/g++命令是非常靈活的,你不指定輸出的檔名的時候預設生成的是.exe檔案。
你要輸出test.exe的話可以用:g++ -o test.exe test.cpp。-o命令是輸出的意思,這樣就輸出了test.exe。
gcc/g++在執行編譯工作的時候,總共需要以下幾步:
"font-family:'microsoft yahei';font-size:16px;"
>
/*************************
test.cpp
*************************/
#include
static
intt = 1;
#define t 9
using
namespace
std;
typedef
intstatus;
intmain()
"font-family: 'microsoft yahei'; font-size: 18px; "
>
命令:g++ -e test.cpp > test.i
功能:輸出預處理後的檔案,linux下以.i為字尾名。只啟用預處理,這個不生成檔案,你需要把它重定向到乙個輸出檔案裡 。這一步主要做了這些事情:巨集的替換,還有注釋的消除,還有找到相關的庫檔案。用編輯器開啟test.i會發現有很多很多**,你只需要看最後部分就會發現,預處理做了巨集的替換,還有注釋的消除,可以理解為無關**的清除。下面是test.i檔案的最後部分,可以看見巨集的替換和注釋的消除。
"font-family:'microsoft yahei';font-size:16px;"
># 5
"test.cpp"
2 static
intt = 1;
using
namespace
std;
typedef
intstatus;
intmain()
命令:g++ -s test.cpp
功能:會生成test.s檔案,.s檔案表示是彙編檔案,用編輯器開啟就都是彙編指令。
命令:g++ -c test.cpp
功能:.o是gcc生成的目標檔案,除非你是做編譯器和聯結器除錯開發的,否則開啟這種.o沒有任何意義。二進位制機器碼一般人也讀不了。
命令:g++ test.o -l f:\vs2008\vc\include\iostream
功能:將.o檔案與所需的庫檔案鏈結整合形成.exe檔案,這就是可執行檔案。-l 表示鏈結,這裡我後面寫的是絕對路徑,相對各人電腦不同
在上面各個步驟中你可以用-o命令輸出你自己想要的各種名字。比如最後乙個命令,用下面的輸出test.exe
你可以g++ test.o -o test.exe -l f:\vs2008\vc\include\iostream
C 編譯連線總結(一) g
快速入門例子 g c a.cpp 編譯檔案,生成目標檔案 a.o g a.o o abc 連線 並重命名為可執行檔案 abc g c a.cpp o a 之後 g a 會儲存的,親驗 g a.cpp 編譯連線一起,生成a.out g a.cpp o hello 生成a.out並命名為hello 涉及...
編譯器 G 相關編譯命令
下面以test.cpp為例 命令 g test.cpp o命令是輸出的意思,這樣就輸出了test.exe。你要輸出test.exe的話可以用 g o test.exe。1.預處理,生成.i的檔案 預處理器cpp 命令 g e test.cpp test.i 功能 這一步主要做了這些事情 巨集的替換,...
用命令列 g 編譯c
一.先裝mingw 只要你裝過ide其實都是有的 就看你找不找得到了 mac的同學不用管這一步 直接第二步 隨便開啟乙個cmd 輸入g v看看會不會報錯 報錯的話就要配置環境變數或者安裝 配置環境變數 如果沒有的話 點進去看 如果安裝過devc 或者別的都是安裝目錄自帶的 只需要環境變數加一下這個路...