網上那麼多關於安裝gcc的步驟、方法,竟然大部分都是簡單問題複雜化,給非專業人看的頭暈,這個是我在網上找的一個,很適合初學者。
CentOS5.2系統安裝在虛擬機上,編譯gcc.
掛載CentOS的DVD系統光盤,然後進入CentOS目錄內,安裝順序如下:
rpm -ivh cpp-4.1.2-42.el5.i386.rpm
rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm
rpm -ivh glibc-headers-2.5-24.i386.rpm
rpm -ivh glibc-devel-2.5-24.i386.rpm
rpm -ivh libgomp-4.1.2-42.el5.i386.rpm
rpm -ivh gcc-4.1.2-42.el5.i386.rpm
注意:必須安裝: kernel-headers-2.6.18-92.el5.i386.rpm 這個包,否則報錯:
warning: glibc-headers-2.5-24.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
kernel-headers is needed by glibc-headers-2.5-24.i386
kernel-headers >= 2.2.1 is needed by glibc-headers-2.5-24.i386
也可以使用 rpm -ivh gcc-4.1.2-42.el5.i386.rpm -aid ,進行自動匹配安裝
安裝:g++
rpm -ihv libstdc++-devel-4.1.2-42.el5.i386.rpm
rpm -ihv gcc-c++-4.1.2-42.el5.i386.rpm
卸載apache相關:
rpm -e --nodeps httpd-2.2.3-11.el5_1.centos.3
rpm -e system-config-httpd-1.3.3.3-1.el5
rpm -e httpd-manual-2.2.3-11.el5_1.centos.3
強制安裝:--force
強制卸載 --nodeps
libtool:
rpm -ihv imake-1.0.2-3.i386.rpm
rpm -ihv imake-1.0.2-3.i386.rpm
rpm -ihv automake-1.9.6-2.1.noarch.rpm
rpm -ihv libobjc-4.1.2-42.el5.i386.rpm
rpm -ihv gcc-objc-4.1.2-42.el5.i386.rpm
rpm -ihv gcc-objc-4.1.2-42.el5.i386.rpm
錯誤:checking for C compiler default output... configure: error: C compiler cannot create executables
原因:/etc/yum.conf 它已經配置好了相關的庫和路徑等等的依賴性!
解決:yum install libc6-dev
yum clean headers
yum clean packages
我在網上看到有人說要下一個LIBC6-DEV的包,我用YUM試了一下,下不到這個包,我看了上面既然是c++的問題,那我就下一個gcc-c++
看看
yum install gcc-c++
剛好操下命令後,它自動的幫我下了兩個軟件
gcc-c++
libstc++
下好以後
就這樣完全通過了?那就接着試試:
yum install glibc-devel-X.X.X-XX
sudo yum install qt4-devel curl-devel gcc glibc-devel2
yum install glibc-devel
升級:
rpm -Uvh *.rpm
應該就是下面的那些包,不行再reinstall一次看看:
2.5u]# rpm -Uvh *.rpm
Preparing... ########################################### [100%]
1:libgcc ########################################### [ 6%]
2:glibc-common ########################################### [ 12%]
3:glibc ########################################### [ 18%]
4:binutils ########################################### [ 24%]
5:glibc-headers ########################################### [ 29%]
6:glibc-devel ########################################### [ 35%]
7:libstdc++ ########################################### [ 41%]
8:libstdc++-devel ########################################### [ 47%]
9:apr ########################################### [ 53%]
10:cpp ########################################### [ 59%]
11:libgomp ########################################### [ 65%]
12:gcc ########################################### [ 71%]
13:apr-devel ########################################### [ 76%]
14:binutils-devel ########################################### [ 82%]
15:gcc-c++ ########################################### [ 88%]
16:glibc-utils ########################################### [ 94%]
17:libtool ########################################### [100%]
最後,還是發現cannot create executables,等等,最後進過比對後發現我的rpm包和系統運維的rpm包一個是CentOS-5.2-i386-bin-DVD.iso,另外一個是:CentOS-5.2-x86_64-bin-DVD.iso,我的是CentOS-5.2-i386-bin-DVD.iso,我倒。。。!! !
請參考我如何發現系統不同的這篇文章:http://www.xiangdong.org/blog/post/1503/,笑死我也。。。
結束:
查正得出:x86-64系統可以運行i386軟件。只有你編譯什麼東西就在什麼東西的連接選項上添加-march=i386 -m32,如:gcc a.c -march=i386 -m32 你也可以加到Makefile裏面。