一换淆、g++編譯流程:
預(yù)處理——>編譯——>匯編——>鏈接
二、g++編譯指令
(注意大小寫)假設(shè)我有一個(gè)main.cpp文件
1.-E:只對文件進(jìn)行預(yù)處理诊笤,不進(jìn)行編譯和匯編系谐。g++ -E main.cpp——>在dos命令行查看某文件的預(yù)處理過程
如果你想查看詳細(xì)的預(yù)處理,可以重定向到一個(gè)文件中讨跟,如:g++ -E main.cpp -o main.i
2.-s:編譯到匯編語言,不進(jìn)行匯編和鏈接,即只激活預(yù)處理和編譯鄙煤,生成匯編語言
如果你想查看詳細(xì)的編譯晾匠,可以重定向到一個(gè)文件中,如:g++ -S main.cpp -o main.s
3.-c:編譯到目標(biāo)代碼
g++ -c main.s -o main.o
4.-o:生成鏈接文件
如果該文件是獨(dú)立的梯刚,與其他自己編寫的文件無依賴關(guān)系凉馆。直接g++? main.o -o main
假設(shè)該文件依賴其他源文件(不需要加入頭文件)temp.cpp,在對temp.cpp文件進(jìn)行預(yù)處理->編譯->匯編后,使用指令g++ temp.o main.o -o main
5..\:執(zhí)行文件亡资,輸出結(jié)果澜共。如: .\main
當(dāng)然你可以直接g++? main.cpp temp.cpp -o main 生成目標(biāo)文件讓編譯器自動(dòng)為你處理其他流程。
或者直接編譯锥腻,鏈接嗦董。