Linux 開發環境搭建與使用——Linux 編譯器之 GCC

來源:互聯網
上載者:User

標籤:

上一節我們學習了 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++ 程式最終成為一個可執行程式。


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 開發環境搭建與使用——Linux 編譯器之 GCC

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.