GNU編譯器g++編譯c++程序:
在Windows下,進入源代碼所在的路徑下,在命令行中輸入:
g++ -o test.exe test.cpp
將test.cpp編譯生成test.exe可執行文件,如果沒有-o test.exe選項,默認生成a.exe
在Linux下,進入源代碼所在的路徑下,在命令行中輸入:
g++ -o test test.cpp
將test.cpp編譯生成test可執行文件(Linux下文件沒有後綴名,通過文件屬性和執行權限識別),默認生成a.out,可能需要在命令尾部輸入-std=c++0x來支持c++11標準
注意:可添加-Wall選項來開啓所有警告,-w來忽略所有警告(嚴重不推薦)
微軟visual studio編譯器編譯c++程序:
在Windows下,開始->所有程序->visual studio->visual studio tools->運行vs開發人員命令提示,在命令行中輸入:
cl /EHsc test.cpp
生成test.exe文件(/EHsc參數來打開標準異常)
在Linux下無visual studio編譯器
注意:可添加/W4來開啓所有警告
分離編譯器編譯源文件的過程
Linux下gcc分步編譯hello world爲例
由上圖可知,hello的c文件到可執行文件經歷了預處理、編譯、彙編、鏈接等幾個過程,下面進行分步編譯過程:
.c文件經過預處理生成.i文件(將#include裏面的內容添加到.c文件中形成.i文件)
gcc -o hello.i -E hello.c
.i文件編譯生成.s彙編文件
gcc -o hello.s -S hello.i
.s彙編文件彙編生成.o目標文件(二進制文件)
gcc -o hello.o -c hello.s
.o目標文件鏈接生成可執行文件(鏈接一些動態靜態庫)
gcc -o hello hello.o
至此生成hello的可執行文件