gcc and g++分別是GNU的c & c++編譯器。gcc/g++在執行編譯的時候一般有下面4步:
1 預處理,生成.i的文件。
命令如下:g++ -E test.cpp
此命令只進行預處理,不會生成文件,需要將輸出重定向到 test.i 文件中,命令如下:
g++ -E test.cpp -o test.i 或 g++ -E test.cpp > test.i
⒉將預處理后的文件轉換成匯編語言,生成文件.s。
命令如下:g++ -S test.i
也可以直接生成 .s文件,命令如下:
g++ -S test.cpp
⒊由匯編變為目標代碼(機器代碼)生成.o的文件。
命令如下:g++ -c test.s 或 g++ -c test.s -o test.o
也可以直接生成.o文件,命令如下:g++ -c test.cpp
⒋連接目標代碼,生成可執行程序。
命令如下:g++ -o test test.cpp 或 g++ test.cpp -o test 或 g++ -o test test.o
其它參數
- -Wall 使能所有警告信息 命令如下(以hello.cpp為例):g++ -Wall -o hello hello.cpp
- -g 可以對程序進行調試,生成調試信息。 命令如下:g++ -g -o hello hello.cpp
- -w 關閉警告信息 命令如下:g++ -w -Wall -o hello hello.cpp
如圖,加入-w 參數后,沒有輸出警告信息。
- -I(大寫的i)指定頭文件查找目錄,當頭文件與源文件不在同一目錄下時可使用該參數,
g++ -c test.cpp ./func/func.cpp -I./func