編譯器方面的幾個命令
gcc/g++
一. 常用編譯命令選項
常用用法
gcc -Wall test.c -o test
gcc編譯過程
.c ->(-E)-> .i[中間文件] ->(-S)-> .s(匯編文件) ->(-c)-> .o[機器語言文件] ->
1. 無選項編譯鏈接
> 用法: gcc test.c
> 作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件。這里未指定輸出文件,默認輸出為a.out。
2. 選項 -o 第四步 鏈接(Linking)
> 用法: gcc test.c -o test
> 作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件test。-o選項用來指定輸出文件的文件名。
3. 選項 -E 第一步 預處理(Pre-Processing)
> 用法: gcc -E test.c -o test.i
> 作用:將test.c預處理輸出test.i文件。
4. 選項 -S 第二步 編譯(Compiling)
> 用法: gcc -S test.i
> 作用:將預處理輸出文件test.i匯編成test.s文件。
5. 選項 -c 第三步 匯編(Assembling)
> 用法: gcc -c test.s
> 作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項鏈接
> 用法: gcc test.o -o test
> 作用:將編譯輸出文件test.o鏈接成最終可執行文件test。
7. 選項 -O
> 用法: gcc -O1 test.c -o test
> 作用:使用編譯優化級別1編譯程序。級別為1~3,級別越大優化效果越好,但編譯時間越長。
二. 多源文件的編譯方法
1. 多個文件一起編譯
> 用法:
2. 分別編譯各個源文件,之后對編譯后輸出的目標文件鏈接。
> 用法:
> gcc -c testfun.c //將testfun.c編譯成testfun.o > gcc -c test.c //將test.c編譯成test.o > gcc -o testfun.o test.o -o test //將testfun.o和test.o鏈接成test
clang
clang的編譯選項大部分和gcc相同
clang