歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 編譯器之 GCC

Linux 編譯器之 GCC

日期:2017/2/28 14:02:46   编辑:Linux教程

上一節我們學習了 Vim 編輯器,接下來我們一起學習 gcc 編譯器,這裡,我們要區分編輯器和編譯器有何不同?

編輯器是指我用它來寫程序的(編輯代碼),而我們寫的代碼語句,電腦是不懂的,我們需要把它轉成電腦能懂的語句,編譯器就是這樣的轉化工具。就是說,我們用編輯器編寫程序,由編譯器編譯後才可以運行!

編譯器是將易於編寫、閱讀和維護的高級計算機語言翻譯為計算機能解讀、運行的低級機器語言的程序。

GCC(GNU Compiler Collection,GNU 編譯器套件),是由 GNU 開發的編程語言編譯器。GCC 原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如 Linux、BSD、Mac OS X 等)采納為標准的編譯器,GCC 同樣適用於微軟的 Windows。

GCC 最初用於編譯 C 語言,隨著項目的發展 GCC 已經成為了能夠編譯 C、C++、Java、Ada、fortran、Object C、Object C++、Go 語言的編譯器大家族。

這裡只是簡單介紹如何編譯 C 程序或者 C++ 程序最終成為一個可執行程序。

使用的例子代碼下載

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2015年資料/4月/7日/Linux 編譯器之 GCC/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

gcc識別的文件擴展名如下

.c C 語言文件

.i 預處理後的 C 語言文件

.C、.cc、.cp、.cpp、.c++、.cxx C++語言文件

.ii 預處理後的 C++ 語言文件

.S 匯編文件(用戶自己新建的匯編文件)

.s 預處理後的匯編文件

.o 編譯後的目標文件

.a 目標文件的靜態鏈接庫(鏈接時使用)

.so 目標文件的動態鏈接庫(鏈接、運行時使用)

gcc 和 g++ 編譯器的編譯過程

1、預處理

2、編譯

3、匯編

4、鏈接

gcc 常用編譯應用實例

分步編譯:

1)gcc -E hello.c -o hello.i

2)gcc -S hello.i -o hello.s

3)gcc -c hello.s -o hello.o

4)gcc hello.o -o hello_elf

編譯選項說明

-o file指定生成的輸出文件名為 file

-E只進行預處理

-S只進行預處理和編譯

-c只進行預處理、編譯和匯編

文件名後綴說明

.c C 語言文件

.i 預處理後的 C 語言文件

.s 預處理後的匯編文件

.o 編譯後的目標文件

程序編譯成功後,通過“./”運行這個可執行程序。

常用編譯(還是經過:預處理、編譯、匯編、鏈接的過程):

gcc hello.c -o demo

如果是 C++ 代碼,只需改用 g++ 編譯器即可。

如果沒有 g++ 編譯器,在線安裝即可:

使用 g++ 編譯 c++ 程序:

gcc、g++ 編譯的其它一些選項

-v 顯示制作gcc工具時的配置命令,顯示預處理器、編譯器的版本號

-Wall 生成所有級別的警告信息

-w 關閉所有警告,建議不使用此選項

-Idir 將dir目錄加入頭文件搜索目錄列表,優先在dir目錄中查找包含的頭文件

-Ldir 將dir目錄加入庫文件目錄列表,優先在dir目錄中查找庫文件

-lname 鏈接庫為name的庫

-static 鏈接時使用靜態庫

-shared 編譯動態庫

Linux升級GCC 4.8.1清晰簡明教程(Ubuntu 12.04 64位版為例) http://www.linuxidc.com/Linux/2014-04/99583.htm

在CentOS 6.4中編譯安裝GCC 4.8.1 + GDB 7.6.1 + Eclipse 在CentOS 6.4中編譯安裝GCC 4.8.1 + GDB 7.6.1 + Eclipse

Ubuntu下Vim+GCC+GDB安裝及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm

Ubuntu下兩個GCC版本切換 http://www.linuxidc.com/Linux/2012-10/72284.htm

CentOS6.5升級手動安裝GCC4.8.2 http://www.linuxidc.com/Linux/2015-01/112595.htm

GCC 的詳細介紹:請點這裡
GCC 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved