linux 編譯安裝GCC4 9 3

2021-08-17 11:17:10 字數 2703 閱讀 5597

第一步

wget

第二步

第三步

解壓檔案,做一些準備工作

tar xjvf gcc-4.9.3.tar.bz2

cd gcc-4.9.3

./contrib/download_prerequisites

cloog-0.18.1

gmp-4.3.2

isl-0.12.2

mpc-0.8.1

mpfr-2.4.2

然後將download_prerequisites裡面的wget全部注釋掉,再執行 :

./contrib/download_prerequisites

做好上面的準備就可以configure了,建議另建乙個目錄來存放編譯檔案,預設安裝目錄是 /usr/local/ 可以使用 –prefix 修改自定義路徑。

cd ..

mkdir gcc-4.9.3-build-temp

cd gcc-4.9.3-build-temp

../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j4

make install

gcc編譯編譯很慢,一切順利的話,取決於你的配置40分鐘-1個小時後再來看結果吧,我用公司的16核伺服器都編譯了20分鐘

第四步

配置庫檔案和標頭檔案路徑

export ld_library_path=/usr/local/lib:/usr/local/lib64/:$ld_library_path

export c_include_path=/usr/local/include/:$c_include_path

export cplus_include_path=/usr/local/include/:$cplus_include_path

執行 gcc -v 可以看到下面的資訊, 恭喜你成功一半了!

gcc -v

使用內建 specs。

collect_gcc=gcc

目標:x86_64-unknown-linux-gnu

配置為:../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

執行緒模型:posix

gcc 版本 4.9.3 (gcc)

上面第二步,我講到了講解壓的gcc-4.9.3 放到 非root使用者也有讀許可權 的目錄,並不是因為無法編譯,而是在除錯過程中,一些常用的stl容器和演算法都沒有問題,但 std::string 等元件定位到了我的編譯目錄.

具體原因我沒細查~ 可能是因為 libstdc++-v3是乙個過時的庫,沒有預設安裝到/usr/local/include/

像這樣:

/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h: no such file or directory

/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/allocator.h: no such file or directory

通過上面也看到了,其實也不是沒有這個檔案,而是非root使用者是沒有許可權訪問root使用者下面內容的

第 五步

難道上面不是已經完成安裝了嗎? 如果你只是編譯不除錯的話,確實是安裝完畢了,不用往下看了。這個問題曾整整折騰了我一天時間,各種google,各種資料最後才算解決。

我也看了其他人的教程,都沒有提到這一點,特此寫這篇文章也算是加深記憶和便於以後檢視,請繼續看一步

第 六步

言歸正傳,公升級完gcc,還需要公升級gdb,可能是因為版本不匹配等原因導致除錯 不能 print 變數提示找不到符號,以及其他莫名其妙的問題…

這裡我選擇安裝的時候gdb-4.9 ,安裝gdb需要3個元件 ,python,python-devel ,texinfo

wget

tar xzvf gdb-7.9.tar.gz

cd gdb-7.9

./configure --with-python

make

make install

如果在安裝過程中提示找不到makeinfo命令或其他錯誤,切換root使用者再試一次,具體原因我沒細查

沒有python的支援也可以編譯,去掉–with-python選項就行了,但是gdb是無法載入python指令碼的,例如c++ 的 pretty-printer 指令碼是無法使用的

如果出現configure: error: c++ compiler missing or inoperational之類的錯誤,需要安裝g++的編譯器。

$sudo apt-get install g++

參考:

編譯記錄:

64位12.04 ubuntu安裝gcc:

linux 編譯安裝GCC4 9 3 完整版

wgettar xjvf gcc 4.9.3.tar.bz2 cd gcc 4.9.3 contrib download prerequisitescloog 0.18.1 gmp 4.3.2 isl 0.12.2 mpc 0.8.1 mpfr 2.4.2.contrib download prer...

編譯安裝GCC

3.解壓gcc 4.6.3.tar.bz2 指令 flydream flydream opt tar xvf gcc 4.6.3.tar.bz2 4.進入 flydream flydream opt cd gcc 4.6.3 6.在gcc 4.6.3目錄下分別解壓上面的三個包 先安裝gmp 5.0....

編譯安裝 gcc

2 解壓 tar jxvf bz2 tar zxvf gz 這個步驟有兩種方式完成 a 如果linux有網路連線,直接這樣 cd gcc解壓目錄 contrib download prerequisites cd 然後解壓並移動到gcc 4.8.1下面 tar xjf gmp 4.3.2.tar.b...