环境: CentOS-6.7 , gcc-4.4.7 系统必须已经安装有一个编译器,因为 gcc也是需要编译的,建议用root进行安装
首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下:
1. mpfr http://ftp.gnu.org/gnu/mpfr/
2. gmp http://ftp.gnu.org/gnu/gmp/
3. mpc http://ftp.gnu.org/gnu/mpc/
1. 编译安装 gmp
# wget http://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.lz
# yum -y install lzip
#lzip -d gmp-6.1.2.tar.lz
# tar -xvf gmp-6.1.2.tar
# cd gmp-6.1.2
# ./configure
# make && make install
2. 编译安装 mpfr
# wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.5.tar.gz
# tar -zxvf mpfr-3.1.5.tar.gz
# cd mpfr-3.1.2
# ./configure
# make && make install
3. 编译安装 mpc
# wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
# tar -zxvf mpc-1.0.3.tar.gz
# cd mpc-1.0.3
# ./configure
# make && make install
# wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
2.解压
# tar -jxvf gcc-4.9.2.tar.bz2
3.下载编译所需的依赖项
# cd gcc-4.9.2
# ./contrib/download_prerequisites
# cd ..
4.建立编译输出目录
# mkdir gcc-build-4.9.2
5.进入此目录,执行以下命令,生成makefile文件
# cd gcc-build-4.9.2
# ../gcc-4.9.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
gcc 编译参数说明:
--enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
--disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
6.执行以下命令进行编译
# make -j2 //机器是双核,故用j2能加快编译速度
7、安装:
# make install
8、指定版本:
现在gcc4.9.2安装完成了,但是gcc4.8.2的环境变量还没有设置,系统中使用的还是旧版的gcc。
刚刚我们把gcc4.9.2安装在/usr/local/bin/gcc-4.9.4下,如果不知道的话可以通过下边这步查找一下。
确定新安装的GCC的路径,可以先updatedb,然后locate gcc-4.9 |tail找一下。
[root@bogon gcc-build-4.9.2]# updatedb
[root@bogon gcc-build-4.9.2]# locate gcc-4.9 |tail
/usr/local/bin/gcc-4.9.4/share/man/man7/fsf-funding.7
/usr/local/bin/gcc-4.9.4/share/man/man7/gfdl.7
/usr/local/bin/gcc-4.9.4/share/man/man7/gpl.7
/usr/local/share/gcc-4.9.2
/usr/local/share/gcc-4.9.2/python
/usr/local/share/gcc-4.9.2/python/libstdcxx
/usr/local/share/gcc-4.9.2/python/libstdcxx/__init__.py
/usr/local/share/gcc-4.9.2/python/libstdcxx/v6
/usr/local/share/gcc-4.9.2/python/libstdcxx/v6/__init__.py
/usr/local/share/gcc-4.9.2/python/libstdcxx/v6/printers.py
查看gcc4.9.2信息如下
[root@bogon gcc-build-4.9.2]# ls /usr/local/bin/gcc-4.9.4/bin | grep gcc
gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-4.9.4
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib
设置使用新版的gcc4.9的方法很简单,设置软链接即可
[root@bogon usr]# mkdir /usr/gcc447backup/
[root@bogon usr]# mv /usr/bin/{gcc,g++} /usr/gcc447backup
[root@bogon usr]# ln -s /usr/local/bin/gcc-4.9.4/bin/gcc /usr/bin/gcc
[root@bogon usr]# ln -s /usr/local/bin/gcc-4.9.4/bin/g++ /usr/bin/g++
[root@bogon usr]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.9.4-source/gcc-4.9.4/configure --enable-languages=c,c++,fortran --enable-checking=release --disable-libmudflap --disable-libstdcxx-pch --enable-libgomp --enable-lto --enable-gold --with-plugin-ld=gold --with-cloog-include=/usr/include-cloog --with-cloog-lib=/usr/lib64 --prefix=/usr/local/gcc-4.9.4
Thread model: posix
gcc version 4.9.4 (GCC)
对于下载的是4.9.2,安装出来的是4.9.4,目前我也很疑惑,哪位知道原因的,希望各位大虾多多指教啊!
参考:http://www.cnblogs.com/codemood/archive/2013/06/01/3113200.html
http://blog.csdn.net/windows_nt/article/details/21240843
一、准备工作
(做完才发现:联网的话,这步可以先跳过,直接进入下一步安装gcc):
首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下:
1. mpfr http://ftp.gnu.org/gnu/mpfr/
2. gmp http://ftp.gnu.org/gnu/gmp/
3. mpc http://ftp.gnu.org/gnu/mpc/
1. 编译安装 gmp
# wget http://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.lz
# yum -y install lzip
#lzip -d gmp-6.1.2.tar.lz
# tar -xvf gmp-6.1.2.tar
# cd gmp-6.1.2
# ./configure
# make && make install
2. 编译安装 mpfr
# wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.5.tar.gz
# tar -zxvf mpfr-3.1.5.tar.gz
# cd mpfr-3.1.2
# ./configure
# make && make install
3. 编译安装 mpc
# wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
# tar -zxvf mpc-1.0.3.tar.gz
# cd mpc-1.0.3
# ./configure
# make && make install
二、安装gcc:
# wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
2.解压
# tar -jxvf gcc-4.9.2.tar.bz2
3.下载编译所需的依赖项
# cd gcc-4.9.2
# ./contrib/download_prerequisites
# cd ..
4.建立编译输出目录
# mkdir gcc-build-4.9.2
5.进入此目录,执行以下命令,生成makefile文件
# cd gcc-build-4.9.2
# ../gcc-4.9.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
gcc 编译参数说明:
--enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
--disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
6.执行以下命令进行编译
# make -j2 //机器是双核,故用j2能加快编译速度
7、安装:
# make install
8、指定版本:
现在gcc4.9.2安装完成了,但是gcc4.8.2的环境变量还没有设置,系统中使用的还是旧版的gcc。
刚刚我们把gcc4.9.2安装在/usr/local/bin/gcc-4.9.4下,如果不知道的话可以通过下边这步查找一下。
确定新安装的GCC的路径,可以先updatedb,然后locate gcc-4.9 |tail找一下。
[root@bogon gcc-build-4.9.2]# updatedb
[root@bogon gcc-build-4.9.2]# locate gcc-4.9 |tail
/usr/local/bin/gcc-4.9.4/share/man/man7/fsf-funding.7
/usr/local/bin/gcc-4.9.4/share/man/man7/gfdl.7
/usr/local/bin/gcc-4.9.4/share/man/man7/gpl.7
/usr/local/share/gcc-4.9.2
/usr/local/share/gcc-4.9.2/python
/usr/local/share/gcc-4.9.2/python/libstdcxx
/usr/local/share/gcc-4.9.2/python/libstdcxx/__init__.py
/usr/local/share/gcc-4.9.2/python/libstdcxx/v6
/usr/local/share/gcc-4.9.2/python/libstdcxx/v6/__init__.py
/usr/local/share/gcc-4.9.2/python/libstdcxx/v6/printers.py
查看gcc4.9.2信息如下
[root@bogon gcc-build-4.9.2]# ls /usr/local/bin/gcc-4.9.4/bin | grep gcc
gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-4.9.4
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib
设置使用新版的gcc4.9的方法很简单,设置软链接即可
[root@bogon usr]# mkdir /usr/gcc447backup/
[root@bogon usr]# mv /usr/bin/{gcc,g++} /usr/gcc447backup
[root@bogon usr]# ln -s /usr/local/bin/gcc-4.9.4/bin/gcc /usr/bin/gcc
[root@bogon usr]# ln -s /usr/local/bin/gcc-4.9.4/bin/g++ /usr/bin/g++
[root@bogon usr]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.9.4-source/gcc-4.9.4/configure --enable-languages=c,c++,fortran --enable-checking=release --disable-libmudflap --disable-libstdcxx-pch --enable-libgomp --enable-lto --enable-gold --with-plugin-ld=gold --with-cloog-include=/usr/include-cloog --with-cloog-lib=/usr/lib64 --prefix=/usr/local/gcc-4.9.4
Thread model: posix
gcc version 4.9.4 (GCC)
对于下载的是4.9.2,安装出来的是4.9.4,目前我也很疑惑,哪位知道原因的,希望各位大虾多多指教啊!
参考:http://www.cnblogs.com/codemood/archive/2013/06/01/3113200.html
http://blog.csdn.net/windows_nt/article/details/21240843