Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android系統開發(1)——GCC編譯器的編譯和安裝過程

Android系統開發(1)——GCC編譯器的編譯和安裝過程

編輯:關於Android編程

GCC編譯器介紹

GCC編譯器(GNG C Compiler)是GNU項目中符合ANSI C標准的編譯系統,能夠編譯C C++ Object C等語言編寫的程序,同時GCC也是一個交叉編譯器,特別使用於不同平台的嵌入式開發。

GNU:

GNU是“GNU is Not Unix"的遞歸縮寫,1984年,史托曼開始GNU項目,這個項目的目的是創建一個自由,開放的Unix操作系統(Free UNIX),剛開始史托曼參考UNIX上面的軟件,開發出功能類似的軟件,在開發期間並沒有看其他軟件的源代碼(為了避免版權糾紛),後來由於GNU軟件的免費,被很多人開始使用。並在之後使用他以前寫過的Emacs編譯器實現一個編譯二進制文件的編譯器(GCC)。到了1985年,為了避免GNU所開發的自由軟件被其他人所利用,所以起草了通用公共許可證(General Public Licence, GPL),其中主要觀念是:版權制度是促進社會進步的手段,版權本身不是自然權利。(詳細了解請進入GNU官網:http://www.gnu.org)。

ANSI C標准:C語言的第一個標准。

GCC編譯過程

\

GCC的使用幫助

在Shell中輸入man gcc可以看到有關GCC的使用幫助,下面是關於C語言和C++的參數說明。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD48aW1nIHNyYz0="/uploadfile/Collfiles/20140821/2014082110461130.png" alt="\" />

幫助中包含一下幾個參數:

1、通用參數

2、c語言參數

3、c++參數

4、object c參數

5、語言無關參數

6、警告參數

7、調試參數

8、優化參數

9、編譯過程參數

10、機器依賴參數

編譯過程參有如下參數:

-c____只編譯不鏈接,生成目標文件。

-S____只編譯不匯編,生成匯編代碼。

-E____只預編譯

-g____包含調試信息

-o file____指定目標輸出文件

-ldir____搜索頭文件路徑

GCC編譯器源代碼下載及編譯

進入GNU官網(www.gnu.org)可以找到GCC的源代碼

\

我們下載一個最新的版本GCC 4.9.1 released,上面有svn檢出路徑,可以使用svn來check out到你的本地。

\

官方下載說明文檔(https://gcc.gnu.org/install/download.html)中說明了GCC所依賴的類庫以及工具。

\

將依賴的庫及GCC源碼下載並解壓縮如下:

\

\

進入到解壓後的gcc文件目錄,如下:

\

下面我們開始執行配置文件configure

\

在配置LOG中我們可以看到出現了錯誤,錯誤內容如下:

\

在編譯的時候需要的類庫找不到,並且告訴了我們這些類庫的最低版本要求,並提供了下載地址。下面我們來看一下這些所依賴的類庫之間的關系:

gmp是GNU的多精度數字運算類庫,需要依賴m4(大多數Ubuntu是默認安裝的)

mpfr是多精度浮點運算的c類庫,需要依賴gmp

mpc是一個復雜的高精度運算的數字運算c類庫,需要依賴gmp, mpfr

gcc需要依賴上面的類庫。

我們搞清楚了這些依賴關系,下面我們就開始從gmp編譯開始吧。

通過./configure --help/more 查看幫助可以看到默認安裝地址如下

\

好吧,下面我們就使用./configure命令,完成如下

\

接下來 使用make命令完成編譯 (可能需要一段時間),等編譯完成後我們執行安裝命令sudo make install\

使用同樣的方法將其他類庫編譯。

將mpfr編譯後/usr/local/lib目錄下的文件如下(新增加了libmpfr開頭的文件):

\

mpc編譯後

\

最後再編譯gcc文件(大概編譯了1個多小時後完成)

注意:這裡系統可能找不到gcc編譯所需要的類庫,所以我們在編譯的時候加上類庫路徑, make --with-gmp= /usr/local/lib --with-mpfr=/usr/local/lib --with

完成後我們可以在/usr/local/bin目錄下看到gcc可執行文件,如何驗證這是我們自己安裝的gcc而不是系統默認提供的gcc,下面我們來看看版本號:

\

可以看到/usr/local/bin目錄下的gcc版本是4.9.1,這個正是我們下載的版本,另外我們可以看到文件的修改時間是今天。





  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved