一、gcc和arm-linux-gcc的常用選項
-
常用選型
-
-v 查看gcc編譯器的版本,顯示gcc執行時的詳細過程
-
-o Place the output into
指定輸出文件名為file,這個名稱不能跟源文件名同名 -
-E Preprocess only; do not compile, assemble or link
只預處理,不會編譯、匯編、鏈接
-
-S Compile only; do not assemble or link
只編譯,不會匯編、鏈接
-
-c Compile and assemble, but do not link
編譯和匯編,不會鏈接
-
-
舉例
//舉例一: gcc hell.c /* 輸出一個a.out,然后./a.out來執行該應用程序 */ gcc -o hello hello.c /* 輸出hello,然后./hello來執行該應用程序(推薦使用這種方式) */ //舉例二: gcc -E -o hello.i hello.c /* 對hello.c文件進行預處理,獲得hello.i文件 */ gcc -S -o hello.s hello.i /* 對hello.i文件進行編譯,獲得hello.s匯編文件 */ gcc -c -o hello.o hello.s /* 對hello.s進行匯編,獲得hello.o(OBJ文件)目標文件 */ gcc -o hello hello.o /* 對hello.o進行鏈接,獲得 hello可執行文件*/ -
總結
1)輸入文件的后綴名和選項共同決定gcc到底執行那些操作。
2)在編譯過程中,除非使用了-E、-S、-c選項(或者編譯出錯阻止了完整的編譯過程),否則最后的步驟都是鏈接。
二、從.c文件到可執行文件過程

