GCC编译简单范例
1.單一程序:打印Hello
源文件為hello.c
無選項編譯鏈接
gcc hello.c將hello.c預處理、匯編、編譯并鏈接形成可執行文件。這里未指定輸出文件,默認輸出為a.out
選項 -o
-o選項用來指定輸出文件的文件名
gcc hello.c -o hello選項 -E
gcc -E hello.c -o hello.i將hello.c預處理輸出hello.i文件
參數 -S
gcc -S hello.i將預處理輸出文件hello.i匯編成hello.s文件
參數 -c
gcc -c hello.s將匯編輸出文件hello.s編譯輸出hello.o文件
無選項鏈接
gcc hello.o -o hello參數 -O
gcc -O1 hello.c -o hello使用編譯優化級別1編譯程序.級別為1-3,級別越大優化效果越好,但編譯時間越長.
2.主程序子程序鏈接:子程序的編譯
假設我們在一個主程序里有調用了另一個子程序,例如以thanks.c這個主程序去調用thanks_2.c這個程序
多個文件一起編譯
gcc thanks.c thanks_2.c -o thanks將thanks.c和thanks_2.c分別編譯后鏈接成thanks可執行文件
分別編譯各個源文件,之后對編譯后輸出的目標文件鏈接
gcc -c thanks.c gcc -c thanks_2.c gcc -o thanks.o thanks_2.o -o test以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: Linux-makefile
- 下一篇: bash shell 学习记录