下面以test.cpp為例:
命令: g++ test.cpp
-o命令是輸出的意思,這樣就輸出了test.exe。
你要輸出test.exe的話可以用:g++ -o test.exe。
1.預處理,生成.i的檔案[預處理器cpp]
命令:g++ -e test.cpp > test.i
功能:這一步主要做了這些事情:巨集的替換,還有注釋的消除,還有找到相關的庫檔案。用編輯器開啟test.i會發現有很多很多**,你只需要看最後部分就會發現,預處理做了巨集的替換,還有注釋的消除,可以理解為無關**的清除。
2.將預處理後的檔案不轉換成組合語言,生成檔案.s[編譯器egcs]
命令:g++ -s test.cpp
功能:會生成test.s檔案,.s檔案表示是彙編檔案,用編輯器開啟就都是彙編指令。
3.有彙編變為目標**(機器**)生成.o的檔案[彙編器as]
命令:g++ -c test.cpp
功能:.o是gcc生成的目標檔案,除非你是做編譯器和聯結器除錯開發的,否則開啟這種.o沒有任何意義。二進位制機器碼一般人也讀不了。
4.連線目標**,生成可執行程式[鏈結器ld]
命令:g++ test.o -l f:\vs2008\vc\include
\iostream
參考文獻g++編譯
編譯器處理相關
一.預處理器 編譯器 彙編器 鏈結器 預處理器會處理相關的預處理指令,一般是以 開頭的指令。如 include xx.h define等。編譯器把對應的 cpp翻譯成 s檔案 組合語言 彙編器則處理 s生成對應的 o檔案 obj目標檔案 最後鏈結器把所有的 o檔案鏈結成乙個可執行檔案 exe 1.部...
編譯器相關問答
1 編譯器編譯的時候,預設到 找標頭檔案,如果不在怎麼指定編譯器到 找標頭檔案?1 如果標頭檔案用 引用,則預設到 usr include或 usr local include下找,交叉編譯器則在對應的路徑的子目錄usr include下找 2 如果標頭檔案用 引用,則先到當前目錄下找標頭檔案,如果...
UNIX LINIUX編譯器相關
標準 unix程式設計環境和c程式語言標準化.標準化有多種,例如iso c制定的.unix標準不同,同它相關的或者能夠支援的標準c庫也不完全相同.例如關鍵字,標頭檔案 及其相關的功能 系統介面 標頭檔案及定義,實用程式等等,有些標準有,有些沒有.unix標準有多種,實現也有多種.iso c的標頭檔案...