gcc & g++
現在是gnu
中最主要和最流行的c & c++
編譯器 。
g++
是c++
的命令,以.cpp
為主,對於c
語言字尾名一般為.c
。
這時候命令換做gcc
即可。
本質上都是gnu
編譯器集合中的倆個部分
其實編譯器是根據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++
在執行編譯工作的時候,總共需要以下幾步:
命令:g++ -e test.cpp > test.i
功能:輸出預處理後的檔案,linux
下以.i
為字尾名。
只啟用預處理,這個不生成檔案,你需要把它重定向到乙個輸出檔案裡 。
這一步主要做了這些事情:巨集的替換,還有注釋的消除,還有找到相關的庫檔案。命令:用編輯器開啟
test.i
會發現有很多很多**,你只需要看最後部分就會發現,預處理做了巨集的替換,還有注釋的消除,可以理解為無關**的清除。
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
或.exec
可執行檔案。
-l
表示鏈結,這裡我後面寫的是絕對路徑,相對各人電腦不同
在上面各個步驟中你可以用-o
命令輸出你自己想要的各種名字。比如最後乙個命令,用下面的輸出test.exe
g++ test.o -o test -l f:\vs2008\vc\include\iostream
關於g (gcc)編譯c c 的學習筆記
o 指定輸出檔名 x 指定輸入源 檔案所使用的程式語言,標準c語言源 檔案字尾名為.c,c 為.cpp 假設現在有這麼個源 include iostream using namespace std int main int argc,char argv for int i 0 icout 我們將其儲...
g gcc 命令 執行的過程
gcc g 現在是gnu中最主要和最流行的c c 編譯器 g 是c 的命令,以.cpp為主,對於c語言字尾名一般為.c。這時候命令換做gcc即可。其實是無關緊要的。其實編譯器是根據gcc還是g 來確定是按照c標準還是c 標準編譯鏈結。下面以test.cpp為例 命令 g test.cpp功能 生成預...
g gcc安裝及版本切換
檢視版本 gcc v 檢視gcc的版本 g v 檢視g 的版本 檢視系統已裝gcc ls usr bin gcc ls usr bin g 安裝 自己選擇版本 sudo apt get install gcc 4.8 g 4.8 安裝4.8.5 sudo apt get install gcc 5 ...