【LINUX】降級安裝低版本GCC,G++


由於要制作crosstool,需要用到gcc 4.1.2來編譯,而Ubuntu 12.04下的gcc版本是gcc 4.6.3,高版本的gcc也不是好事啊。

下面介紹gcc 4.1.2的編譯安裝方法:

1. 下載並解壓源碼:
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2
tar jxvf gcc-4.1.2.tar.bz2

2. 安裝依賴庫及軟件:
sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo

3. 聲明編譯時的include和lib路徑:
Ubuntu由於采用了多系統支持,include和lib路徑有些不同,可以這樣聲明暫時解決編譯gcc時找不到頭文件和庫的問題。
export C_INCLUDE_PATH=/usr/include/i386-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/i386-linux-gnu
export LIBRARY_PATH=/usr/lib/i386-linux-gnu

4. 編譯gcc:
cd gcc-4.1.2
mkdir build
cd build
../configure --prefix=/opt/gcc-4.1.2 --program-suffix=-4.1 --libexecdir=/opt/gcc-4.1.2/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --enable-languages=c,c++

make bootstrap
然后是漫長的等待。。。

5. 安裝gcc:
make install
cd /opt/gcc-4.1.2/bin
ls -al
看到i686-pc-linux-gnu-gcc-4.1.2等文件就說明安裝完成啦。

6. 切換gcc 4.1.2:
我一般喜歡在主目錄下建立一個bin文件夾,而bin文件夾默認就在PATH中,然后在bin文件夾下鏈接gcc-4.1來切換gcc的不同版本。
cd ~
mkdir bin
ln -s /opt/gcc-4.1.2/bin/gcc-4.1 gcc
ln -s /opt/gcc-4.1.2/bin/g++-4.1 g++
ln -s /opt/gcc-4.1.2/bin/cpp-4.1 cpp
ln -s /opt/gcc-4.1.2/bin/gcov-4.1 gcov
ln -s gcc cc
ln -s g++ c++
現在重新登錄,輸入gcc -v 或 cc -v就可以顯示gcc已經變成4.1.2版本啦

 

最近在了解分布式文件系統, 看到了淘寶自己的開源分布式文件系統 tfs, 因為他要求編譯最好是使用 4.1.2 版本的 gcc 編譯, 因此需要安裝此版本的 gcc.
其他少說, 直接開始安裝吧:

1. 下載&解壓源碼

$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 $ tar xvjf gcc-4.1.2.tar.bz2

2. 安裝依賴庫, 以及軟件

$ sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo

3. 為頭文件以及所需庫添加鏈接
添加如下鏈接, 這取決於你的 Ubuntu 系統架構, 如果你使用的是64位的ubuntu系統應當使用x86_64-linux-gnu替代i386-linux-gnu

$ cd /usr/include $ sudo ln -s i386-linux-gnu/bits bits $ sudo ln -s i386-linux-gnu/gnu gnu $ sudo ln -s i386-linux-gnu/sys sys $ sudo ln -s i386-linux-gnu/asm asm $ cd /usr/lib $ sudo ln -s i386-linux-gnu/crt1.o crt1.o $ sudo ln -s i386-linux-gnu/crti.o crti.o $ sudo ln -s i386-linux-gnu/crtn.o crtn.o 

4. 編譯gcc

$ cd gcc-4.1.2 $ mkdir build $ cd build $ ../configure --prefix=/usr/local --program-prefix=sse- --libexecdir=/usr/local/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --enable-languages=c,c++ $ make bootstrap

如果出現了如下錯誤:

WARNING: `makeinfo’ is missing on your system. You should only need it
if you modified a `.texi’ or `.texinfo’ file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make’ (AIX,
DU, IRIX). You might want to install the `Texinfo’ package or
the `GNU make’ package. Grab either from any GNU archive site.

請使用以下命令編譯:

$ make bootstrap MAKEINFO=makeinfo

5. 安裝gcc

$ make install
$ cd /usr/local/bin $ ll *gcc*

看到類似以下幾個文件, 安裝就完成了

i686-pc-linux-gnu-gcc-4.1.2 i686-pc-linux-gnu-ssegcc ssegcc ssegccbug


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM