需要編譯出執行在arm平台上的**,所使用的交叉編譯器為 arm-linux-gcc。下面將arm-linux-gcc編譯工具的一些常用命令引數介紹給大家。
在此之前首先介紹下編譯器的工作過程,在使用gcc編譯程式時,編譯過程分為四個階段:
1. 預處理(pre-processing)
2. 編譯(compiling)
3. 彙編(assembling)
4. 鏈結(linking)
linux程式設計師可以根據自己的需要讓 gcc在編譯的任何階段結束,以便檢查或使用編譯器在該階段的輸出資訊,或者對最後生成的二進位制檔案進行控制,以便通過加入不同數量和種類的除錯**來為 今後的除錯做好準備。和其它常用的編譯器一樣,gcc也提供了靈活而強大的**優化功能,利用它可以生成執行效率更高的**。
以檔案example.c為例說明它的用法
0. arm-linux-gcc -o example example.c
不加-c、-s、-e引數,編譯器將執行預處理、編譯、彙編、連線操作直接生成可執行**。
-o引數用於指定輸出的檔案,輸出檔名為example,如果不指定輸出檔案,則預設輸出a.out
1.arm-linux-gcc -c -o example.o example.c
-c引數將對源程式example.c進行預處理、編譯、彙編操作,生成example.o檔案
去掉指定輸出選項」-o example.o」自動輸出為example.o,所以說在這裡-o加不加都可以
2.arm-linux-gcc -s -o example.s example.c
-s引數將對源程式example.c進行預處理、編譯,生成example.s檔案
-o選項同上
3.arm-linux-gcc -e -o example.i example.c
-e引數將對源程式example.c進行預處理,生成example.i檔案(不同版本不一樣,有的將預處理後的內容列印到螢幕上)
就是將#include,#define等進行檔案插入及巨集擴充套件等操作。
4.arm-linux-gcc -v -o example example.c
加上-v引數,顯示編譯時的詳細資訊,編譯器的版本,編譯過程等。
5.arm-linux-gcc -g -o example example.c
-g選項,加入gdb能夠使用的除錯資訊,使用gdb除錯時比較方便。
6.arm-linux-gcc -wall -o example example.c
-wall選項開啟了所有需要注意的警告資訊,像在宣告之前就使用的函式,宣告後卻沒有使用的變數等。
7.arm-linux-gcc -ox -o example example.c
-ox使用優化選項,x的值為空、0、1、2、3
0為不優化,優化的目的是減少**空間和提高執行效率等,但相應的編譯過程時間將較長並占用較大的記憶體空間。
8.arm-linux-gcc -i /home/include -o example example.c
-idirname: 將dirname所指出的目錄加入到程式頭檔案目錄列表中。如果在預設系統及當前目錄中沒有找到需要的檔案,就到指定的dirname目錄中去尋找。
9.arm-linux-gcc -l /home/lib -o example example.c
-ldirname:將dirname所指出的目錄加入到庫檔案的目錄列表中。在預設狀態下,連線程式ld在系統的預設路徑中(如/usr/lib)尋找所需要的庫檔案,這個選項告訴連線程式,首先到-l指定的目錄中去尋找,然後再到系統預設路徑中尋找。
10.arm-linux-gcc –static -o libexample.a example.c
靜態鏈結庫檔案
arm linux gcc常用引數
arm linux gcc 引數 0.arm linux gcc o example example.c 不加 c s e引數,編譯器將執行預處理 編譯 彙編 連線操作直接生成可執行 o引數用於指定輸出的檔案,輸出檔名為example,如果不指定輸出檔案,則預設輸出a.out 1.arm linux...
gcc和arm linux gcc的常用選項
gcc和arm linux gcc的常用選項 gcc的使用方法 gcc 選項 檔名 gcc常用選項 v 檢視gcc編譯器的版本,顯示gcc執行時的詳細過程 o place the output into 指定輸出檔名為file,這個名稱不能跟源檔名同名 e preprocess only do no...
gcc和arm linux gcc的常用選項
gcc和arm linux gcc的常用選項 gcc的使用方法 gcc 選項 檔名 我們日常生活中所說的編譯,其實包含 1 預處理,2 編譯,3 彙編,4 鏈結這四部分 1 預處理 c c 原始檔中,以 號開頭的命令被稱為預處理命令,如包含命令 linclude 巨集定義命令 define 條件編譯...