CentOS 安装光盘自带 gcc 版本为 4.4.7。
最新的一些应用的源代码编译时候会报告gcc 版本过低,所以需要升级到最新 gcc。
1,必备软件:
gcc,g++;可以用 yum install 安装,但是yum安装目前最高版本是4.4.7。
如果CentOS安装选择64位系统,还需要32位glibc,也可用yum install 安装。
2,下载gcc 和关联库的源码包:
地址: ftp://gcc.gnu.org/pub/gcc/releases ,选择包之后,用wget下载。
关联包:ftp://gcc.gnu.org/pub/gcc/infrastructure/
mpc
mpfr
gmp
isl
cloog
3,编译安装关联库:mpc, mpfr, gmp, isl, cloog。
./configure
make
make check
make install
关联库编译安装完成之后在/usr/local/lib下会生成库文件。在/usr/local/include下会生成.h文件。
4,创建 gcc 编译和安装目录
$ mkdir objdir
#编译运行目录
$ mkdir /usr/local/gcc-4.8.1
#编译后头文件存放目录
$ mkdir /usr/local/gcc #编译后bin+lib存放目录
5,开始编译
$ gcc_src_path/configure #在上面创建的objdir目录执行,切忌在gcc源代码目录执行。
--prefix=/usr/local/gcc-4.8.1
--exec-prefix=/usr/local/gcc
--with-gmp=/usr/local
--with-mpfr=/usr/local
--with-mpc=/usr/local
--with-cloog=/usr/local
--with-isl=/usr/local
--disable-isl-version-check #gcc-4.8.1 的isl库版本检测程序有bug,无法正确判断isl版本0.11.1
--enable-threads=posix
--enable-languages=c,c++
完成之后make
然后 su
最后 make install
6,关于isl版本检测
gcc 源码目录下 configure.ac 和 config/isl.m4 文件对 isl 版本判断有bug,只能支持2个字段版本号。需要加入第3个字段。
在 configure 时候,可以用 disable-isl-version-check 跳过版本检测。
7,配置后续工作
# 将 gcc/g++ 改名
$ mv /usr/bin/gcc /usr/bin/gcc-4.4.7
$ mv /usr/bin/g++ /usr/bin/g++-4.4.7
在/etc/profile.d下创建 custom.sh ,写入环境变量参数。
export PATH=/usr/local/gcc/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib # 可以根据需要加入其他lib搜索目录,/usr/local/gcc/lib 等。
export C_INCLUDE_PATH=/usr/include
export CPLUS_INCLUDE_PATH=/usr/include/c++/4.8.1:/usr/include/c++/4.8.1/x86_64-unknown-linux-gnu
ln -s /usr/local/gcc-4.8.1/include/c++/4.8.1 /usr/include/c++/4.8.1 # 在 include/c++ 文件夹下添加最新的 c++ 4.8.1 版本(这是个符号链接);
8,测试 helloworld.c
9,参考:
%E4%B8%8B%E5%AE%89%E8%A3%85gcc-481