安裝不同版本GCC

 在Fedora 8時,重裝編譯grub-0.97時,總是出現如下錯誤:

configure: error: GRUB requires a working absolute objcopy; upgrade your binutils

google 了一下,原來是gcc版本不兼容,他要求的版本是3.4,而我的機器是4.1的,只好下載源碼重新安裝。

 

   1. 下載

 

  http://gcc.gnu.org/releases.html 下載3.4.0版本

 

   2. 解壓縮

 

   % tar xzvf gcc-3.4.0.tar.gz

  

     新生成的 gcc-3.4.0 這個目錄被稱爲源目錄,用 ${srcdir} 表示它。以後在出現 ${srcdir} 的地方,應該用真實的路徑來替換它。用 pwd 命令可以查看當前路徑。

 

  在 ${srcdir}/INSTALL 目錄下有詳細的 GCC 安裝說明,可用瀏覽器打開 index.html 閱讀。

 

   3. 建立目標目錄

 

  目標目錄(用 ${objdir} 表示)是用來存放編譯結果的地方。 GCC 建議編譯後的文件不要放在源目錄 ${srcdir] 中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是 ${srcdir} 的子目錄。

 

  例如,可以這樣建立一個叫 gcc-build 的目標目錄(與源目錄 ${srcdir} 是同級目錄):

 

   % mkdir gcc-build

   % cd gcc-build

 

  以下的操作主要是在目標目錄 ${objdir} 下進行。

 

   4. 配置

 

  配置的目的是決定將 GCC 編譯器安裝到什麼地方( ${destdir} ),支持什麼語言以及指定其它一些選項等。其中, ${destdir} 不能與 ${objdir} ${srcdir} 目錄相同。

 

  配置是通過執行 ${srcdir} 下的 configure 來完成的。其命令格式爲(記得用你的真實路徑替換 ${destdir} ):

 

   % ${srcdir}/configure --prefix=${destdir} [ 其它選項 ]

 

  例如,如果想將 GCC 3.4.0 安裝到 /usr/local/gcc-3.4.0 目錄下,則 ${destdir} 就表示這個路徑。

 

  在我的機器上,我是這樣配置的:

 

   % ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java

 

  將 GCC 安裝在 /usr/local/gcc-3.4.0 目錄下,支持 C/C++ JAVA 語言,其它選項參見 GCC 提供的幫助說明。

 

   5. 編譯並安裝

 

   % make -j 10 && make

 

 

 

   5.  設置

 

 

   5.1 gcc g++ gcj 的設置

 

  要想使用 GCC 3.4.0 gcc 等命令,簡單的方法就是把它的路徑 ${destdir}/bin 放在環境變量 PATH 中。我不用這種方式,而是用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的 GCC 編譯器。

 

  首先,查看原來的 gcc 所在的路徑:

 

   % which gcc

 

  在我的系統上,上述命令顯示:/usr/lib/ccache/gcc
我們可以把 GCC 3.4.0 中的 gcc g++ gcj 等命令在 /usr/lib/ccache 目錄下分別做一個符號連接:

 

   % cd /usr/lib/ccache/gcc
   
% ln -s ${destdir}/bin/gcc gcc34

   % ln -s ${destdir}/bin/g++ g++34

   % ln -s ${destdir}/bin/gcj gcj34

 

  這樣,就可以分別使用 gcc34 g++34 gcj34 來調用 GCC 3.4.0 gcc g++ gcj 完成對 C C++ JAVA 程序的編譯了。同時,仍然能夠使用舊版本的 GCC 編譯器中的 gcc g++ 等命令。

 

   5.2 庫路徑的設置

 

  將 ${destdir}/lib 路徑添加到環境變量 LD_LIBRARY_PATH 中,最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變量了。

 

  例如,如果 GCC 3.4.0 安裝在 /usr/local/gcc-3.4.0 目錄下, 在文件 /etc/profile 中添加下面一句:

 

export PATH=/usr/local/gcc-3.4.0/:$PATH

 

 

 

  參考:http://blog.chinaunix.net/u2/65006/showart_1992662.html

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章