Linux之Ubuntu學習003——gcc/g++編譯器

來源:互聯網
上載者:User

Linux環境下最常用的編譯器應該要數gcc/g++,除非不是使用C/C++作為程式設計語言。gcc和g++是Linux平台編譯器的事實標準。

GCC程式的編譯過程:

使用gcc/g++編譯器時,編譯過程應該分為4個階段:

1、預先處理(Pre-Processing);

2、編譯(Compiling);

3、彙編(Assembling);

4、連結(Linking)。

gcc可以對檔案進行編譯,通常僅需要一條指令。

假如我們有一個命名為hello.cpp的“hello,world!”檔案,想對其進行編譯,輸出想要的結果。僅需要下面一條指令就可以完成:

gcc hello.cpp -o hello

有些時候,往往需要處理一些意想不到的情況,而需要編譯器過程中的某些中間檔案,gcc也可以使用分步來執行編譯檔案。分步編譯使用參數“-E,-S,-o”可以分別得到*.i,*.s,*.o檔案,這些都是中間檔案。

檔案*.i 是預先處理產生的檔案;檔案*.s 是編譯後產生的組合語言檔案;檔案*.o 彙編產生的二進位機器代碼。

總的過程可以用以下指令:

gcc -E hello.cpp -o hello.igcc -S hello.i -o hello.ogcc hello.o -o hello

最終產生可執行檔hello

還可以省略中間一些步驟,將上面過程簡化為:

gcc -c hello.cpp -o hello.ogcc hello.o -o hello

從上面的指令可以看得出,gcc的基本用法是:

gcc <options> [filename]

其中參數可以參考說明文檔,以下僅列出常用的以下參數:

● -c 只編譯,不連結成可自行檔案,也就是產生一個*.o的檔案。

● -o output_filename 確定輸出檔案名,沒有確定就會產生一個預設檔案名稱a.out。

● -g 產生調試資訊。

● -O 對程式進行最佳化編譯,連結。

● -Wall 輸出所有警告資訊。

● -w 關閉所有警告資訊。

● -Idirname 將名為dirname的目錄加入到程式標頭檔目錄列表。

 

PS:

剛安裝Ubuntu的時候還專門下載了個Code::Blocks用來寫C++代碼,經過這幾天對Vim和gcc/g++的摸索和學習,終於可以將Code::Blocks這個小東西徹底捨棄卸載掉了。

3月20日安裝了Ubuntu 12.04 LTS到現在可以使用Linux來寫程式,使用終端CLI也在逐漸習慣,對於基本的命令也算是比較熟悉了。

學習Linux大大得益於www.LinuxCast.net的視頻,《Linux入門基礎》基本已經看完,接著就是看看書,將內容好好理順一遍。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.