ubuntu10.4環境下預設的gcc版本為4.4.3,由於編譯環境的gcc版本為3.2.2,想在ubuntu上使用編譯環境版本的gcc,故需要將gcc版本降級到3.2.2。gcc在新版本加入了一些高階特性,導致從gcc4.4.3不能直接降級到3.2.2。本文通過嘗試,可以通過階段性的降級方案,即先從gcc4.4.3降級到 gcc3.4.4版本,再從gcc3.4.4降級到gcc3.2.2。以下是重要的操作步驟和過程中問題的解決方法。
(2)安裝gcc3.4.4。首先在編譯環境下執行gcc –v來獲取gcc的configure資訊,本文中其結果為:
***/abc /home/*** # gcc -v
readingspecs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs
configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
thread model: posix
gcc version 3.2.2 20030222 (red hat linux 3.2.2-5)
在降級的裝置上將gcc-3.4.4.tar.bz2解壓之後進入解壓目錄,參考編譯環境中gcc的配置來配置當前的gcc3.4.4。
./configure --prefix=/usr/local/gcc-3.4.4/ --mandir=/usr/local/gcc-3.4.4/share/man --infodir=/usr/local/gcc-3.4.4/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++
其中的prefix、mandir、infodir都可以根據自己的需要來設定,configure之後執行make && make install。
其中在make的過程中會出現以下錯誤:www.it165.net
in function 'open',
inlined from 'collect_execute' at ./collect2.c:1537:
/usr/include/bits/fcntl2.h:51: error: call to '__open_missing_mode' declared with attribute error: open with o_creat in second argument needs 3 arguments
解決的方法是修改gcc/collect2.c的1537行,將原來的
redir_handle = open (redir, o_wronly | o_trunc | o_creat);修改為
redir_handle = open (redir, o_wronly, o_trunc | o_creat);
即將原來open呼叫中的2個引數修改為3個引數,然後重新進行make和make install即可完成gcc3.4.4的安裝,
(3)為了在某些場景下繼續使用gcc4.4.3可以通過以下方式保留gcc4.4.3,方法是在gcc的安裝路徑/usr/bin/目錄下按照以下步驟操作。
mv gcc gcc-4.4.3
mv g++ g++-4.4.3
ln –s /usr/local/gcc-3.4.4/bin/gcc gcc
ln –s /usr/local/gcc-3.4.4/bin/g++ g++
這樣gcc4.4.3和gcc3.4.4就可以共同存在了。
(4)安裝了gcc3.4.4,還要修改/etc/bash.bashrc在其末尾增加以下內容,以讓其正確鏈結到它需要的庫。
ld_library_path=/usr/local/ gcc-3.4.4/lib
export ld_library_path
通過以上操作重新source /etc/bash.bashrc後就可以使用gcc3.4.4了。
(5)同樣按照上面的方法可以在gcc3.4.4的基礎上安裝gcc3.2.2,所不同的是在configure的過程中需要指定不同的安裝路徑。安裝完成之後執行gcc –v可以看到以下輸出。
root@***-desktop:/usr/local/gcc-3.4.4/bin# gcc -v
readingspecs from /usr/local/gcc-3.2.2//lib/gcc-lib/i686-pc-linux-gnu/3.2.2/specs
configured with: ./configure --prefix=/usr/local/gcc-3.2.2/ --mandir=/usr/local/gcc-3.2.2/share/man --infodir=/usr/local/gcc-3.2.2/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++
thread model: posix
gcc version 3.2.2
ubuntu10 4下安裝交叉編譯器
最近重新在硬碟上安裝了ubuntu10.4,現在記錄一下建立交叉編譯環境arm linux gcc 4.3.2的過程。1.首先確保安裝了標準c開發環境,一句命令搞定 sudo apt get install build essential,2.進入arm linux gcc 4.3.2存放的目錄,執...
安裝好UBUNTU10 4後的配置 大概
安裝好10.4後,還要有很多的設定,包括安裝常用軟體。在做以下工作前,必須配置網路連線,個人覺得ubuntu離開了網路,基本上沒法活了。一 安裝中文環境 首先配置乙個速度快的源,然後安裝中文環境,更新軟體管理器,使其系統處於最新狀態。二 配置輸入法 配置不好輸入法,打中文就痛苦了。三 安裝tweak...
Ubuntu10 4特點及應用領域前瞻
4月14日,idf2010英特爾北京資訊科技峰會的最後一天。記者有幸採訪到了canonical公司的三位高管 下圖 如果說canonical公司讓讀者有些疑惑的話,那麼這家公司的主打產品一定讓您如雷貫耳 著名的linux作業系統ubuntu。藉著來中國參加idf峰會的機會,這幾位 大佬 透露了ubu...