linux下gcc/g++編譯用法

loophome發表於2015-10-17

關於gcc

gcc用於編譯C語言編寫的程式,在編譯程式時可以有很多可選引數。在終端中輸入gcc –help,可以檢視gcc的這些可選引數。

編譯過程:指的是gcc對一個程式進行編譯時完成的內部處理和步驟。編譯程式時會自動完成預處理(Preprocessing)、編譯(Compilation)、彙編(Assembly)和連線(Linking)四個步驟

控制預處理過程:引數-E可以完成程式的預處理工作而不進行其他的編譯工作。下面的命令,可以將本章編寫的程式進行預處理,然後儲存到檔案a.cxx中。
gcc -E -o a.cxx a.c
生成彙編程式碼:引數-S可以控制gcc在編譯C程式時只生成相應的彙編程式檔案,而不繼續執行後面的編譯。下面的命令,可以將本章中的C程式編譯成一個彙編程式。
gcc -S -o a.s a.c
生成目的碼:引數-c可以使用gcc在編譯程式時只生成目錄程式碼而不生成可執行程式。輸入下面的命令,將本章中的程式編譯成目錄程式碼
gcc -c -o a.o  a.c
連結生成可執行檔案:gcc可以把上一步驟生成的目錄程式碼檔案生成一個可執行檔案。在終端中輸入下面的命令。
gcc a.o -o aa.out

編譯一個簡單的C程式:

gcc -o hello.out hello.c

編譯後生成了hello.out可執行檔案

編譯debug版本的C程式,很簡單,加上-g這個引數即可

gcc -g -o hello.debug hello.c

注意:使用-g生成的目的碼比不使用此引數生成的目的碼要大,通常在開發過程中使用-g引數,當釋出程式時則不使用-g引數

編譯完debug版本之後,可以使用gdb命令進行除錯,可以參考這個部落格http://blog.csdn.net/haoel/article/details/2879



待續......

相關文章