1. 程式人生 > >Linux之gcc與g++編譯器

Linux之gcc與g++編譯器

1.2 -c span logs style div out com 成了

1.gcc編譯器

  gcc編譯器開發初期定位為C編譯器(GNU C Compiler),但隨著時間的發展gcc編譯器能夠支持多種語言。

1.1 gcc編譯器的使用

  假如我們已經有了.c文件名稱為Hello.c,可以使用下面的語句編譯該文件:

$ gcc Hello.c

該語句執行成功後,會在當前目錄下生成可執行文件名稱為a.out(默認),我們可以使用下面的語句來運行該可執行文件:

$ ./a.out

當然我們不想使用默認的名稱,這樣不夠直觀,我們可以在使用gcc進行編譯時指定其可執行文件名:

$ gcc -o hello Hello.

默認的a.out文件名就被替換成了“hello”;

1.2 編譯有關選項

  在很多情況下程序員不是要一個可執行文件這麽簡單,一些場合需要目標代碼,有些場合需要匯編代碼等等,下面列舉出編譯相關選項:

  -c 只激活預處理,編譯和匯編,生成擴展名為.o的目標代碼文件;

  -S 只激活預處理和編譯,生成擴展名為.s的匯編代碼文件;

  -E 只激活預處理,並將結果輸出至標準輸出

  -g 為調試程序生成相關信息(如gdb)

1.3 優化選項

  gcc提供了3個級別的優化給程序員進行選擇,從低到高依次是-O1,-O2和-O3。從理論上來將-O3能生成執行效率最高的代碼,然而優化程度越高風險越高,一般情況下-O2使用較多。事實上三個級別的優化是對多種具體優化的打包,具體的可以查看gcc官方手冊,另外可以使用-march選項,為特定的CPU編譯二進制代碼,但不是特殊場合不要使用-march選項。

$ gcc -O2 -o hello Hello.c

2.g++編譯器

  gcc雖然也能編譯C++源文件,但是其不能自動和C++庫進行連接,所以通常使用g++來完成C++源文件的編譯和鏈接

g++編譯器的使用

  g++編譯器的使用和gcc基本一致。

Linux之gcc與g++編譯器