進入到掛載的目錄下,先cp GCC4.2.bz2 /azuo,
cd /azuo,
tar -xvf GCC 4.2.bz2 ,
得到gcc-4.2,
cd gcc-4.2,在/usr目錄下建立一個文件夾就是現在要存放新的gcc的目錄,
mkdir /usr/gcc4
./configure –prefix=/usr/gcc4
回車,就會有配置信息,只要不報錯就可以了,
make,這個過程很久,因為我沒有設置一些具體的選項,因此,所有的組件幾乎都要編譯一遍,我的電腦cpu:AMD 3200+X2 ,1.5g內存,大概花費一個半小時。
到這個時候為止,/usr/gcc4下還沒有任何東西,編譯過程都是發生在源文件夾,讓我們再來一個動作,所有的要用到的東西都會配置到目標文件夾下,
make install;
這個過程也不短,等著就是了。
一切都已經弄好了之后就是使用的gcc了,可以看到,在/usr/gcc4/bin下有gcc,g++,等一些東西,都是可以用的,寫兩個程序:
aa.c:
1 #include
2
3 int main(void) {
4 printf("ad");
5 return 1;
6 }
gcc -o aa aa.c
執行 ./aa
上面的這個是c的,下面這個就是c++的了:
a.cpp:
1 #include
2 using namespace std;
3 int main(void) {
4 cout << "Ok!" << endl;
5 return 1;
6 }
g++ -o a a.cpp
執行就是了./a
一切ok了,就可以讓的gcc工具取代原來的工具了。
看看原來的gcc是什么版本的,我們好卸載它:
[root@BTazuo bin]# rpm -qa gcc
gcc-4.1.2-27.fc7
[root@BTazuo bin]# rpm -e gcc-4.1.2-27.fc7
error: Failed dependencies:
gcc is needed by (installed) systemtap-0.5.13-1.fc7.i386
gcc = 4.1.2-27.fc7 is needed by (installed) gcc-c++-4.1.2-27.fc7.i386
gcc = 4.1.2-27.fc7 is needed by (installed) gcc-gfortran- 4.1.2 -27.fc7. i386
[root@BTazuo bin]# rpm -e gcc-c++-4.1.2-27.fc7.i386
[root@BTazuo bin]# rpm -e gcc-gfortran-4.1.2-27.fc7.i386
[root@BTazuo bin]# rpm -e gcc-4.1.2-27.fc7
error: Failed dependencies:
gcc is needed by (installed) systemtap-0.5.13-1.fc7.i386
[root@BTazuo bin]# g++
bash: g++: command not found
卸載成功
[root@BTazuo bin]# gcc
gcc: 沒有輸入文件 ,可見gcc猶在
[root@BTazuo bin]# rpm -e systemtap-0.5.13-1.fc7.i386
[root@BTazuo bin]# gcc
gcc: 沒有輸入文件
[root@BTazuo bin]# rpm -e gcc-4.1.2-27.fc7
[root@BTazuo bin]# gcc
bash: /usr/lib/ccache/gcc: 沒有那個文件或目錄
的卸載成功!
這個時候,要注意了,我的gcc在/usr/bin下面有,在/usr/lib/ccache這個目錄下也有,分別在這兩個下面都要建立一個鏈接:
[root@BTazuo bin]# ln -s /usr/gcc4/bin/g++ g++
[root@BTazuo bin]# g++
g++: 沒有輸入文件
可見g++已經裝好了,可以使用了。
然后是gcc:
[root@BTazuo bin]# ln -s /usr/gcc4/bin/gcc gcc
[root@BTazuo bin]# gcc
bash: /usr/lib/ccache/gcc: 沒有那個文件或目錄
[root@BTazuo bin]# ./gcc
gcc: 沒有輸入文件
可見還要給另外一個目錄建立一個gcc的鏈接:
[root@BTazuo lib]# ln -s /usr/gcc4/bin/gcc /usr/lib/ccache/gcc
[root@BTazuo lib]# gcc
gcc: 沒有輸入文件
到此為止,gcc和g++都已經建立好了,可以用了,把原來的包和解壓文件都可以刪除了,以節省硬盤空間!