服务项目:网站建设、仿站、程序开发、APP开发设计、移动网站开发设计、企业网站设计、电子商务网站开发、网站维护、网站推广、UX/UI 、HTML5、CSS3、JS / Jquery ...
四川浚网科技有限公司
四川浚网科技有限公司 (开发设计官网)TEL : 15308000360 / QQ : 38585404

您的位置:首页 > 技术经验 > 服务器 > 正文

linux CentOS6.8编译安装GCC-6.3.0 升级GCC

记录编译GCC 6.3.0时遇到的问题和解决方法,以备日后查询...

若此篇文章还不能解决您的问题,请联系QQ:38585404  (有偿技术支持)
 
平时使用的服务器是CentOS6,自带的gcc编译器还是多年前发布的版本,很多新版本的软件都不支持,因为不想升级操作系统,只好自己下载源码编译。
 
安装过程挺无语的,重复了很多次,只好记录下来...
 
安装依赖库
 
GCC依赖于gmp 4.2+, mpfr 2.4+和mpc 0.8+,这里直接下载安装最新的版本。
 
安装gmp 6.1.2
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar.xz cd gmp-6.1.2
./configure --prefix=/usr/local/gmp

make && make install
安装mpfr 3.1.5 mpfr依赖于gmp
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.gz
tar xvf mpfr-3.1.5.tar.gz
cd mpfr-3.1.5
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp

make && make install
安装mpc 1.0.3 mpc依赖于gmp和mpfr
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
tar xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp -with-mpfr=/usr/local/mpfr

make && make install
安装GCC 6.3.0
wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz
tar xvf gcc-6.3.0.tar.gz
cd gcc-6.3.0
./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc

make -j8
make install
安装过程中可能会出现:
“checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile

See `config.log' for more details.

make[2]: *** [configure-stage1-target-libgcc] Error 1

make[2]: Leaving directory `/tmp/gcc-6.3.0'

make[1]: *** [stage1-bubble] Error 2

make[1]: Leaving directory `/tmp/gcc-6.3.0'

make: *** [bootstrap] Error 2
解决方法:
yum install libgcc.i686
头一次我也看到这个,执行后去编译还是出错,在网上找到这个方法,虽然安装后没什么用,但是还是安装上吧。

实际解决办法:编辑变量,把我们安装的gmp,mpfr,mpc加进去
vi /etc/ld.so.conf
添加部分:
/usr/local/lib        #这个是默认系统的变量
/usr/local/gmp/lib
/usr/local/mpfr/lib
/usr/local/mpc/lib
/usr/local/mysql/lib  #我服务器上安装了MySQL 所以这里是MySQL的变量
/usr/local/openssl/lib #openssl变量
添加保存后记得更新动态库的缓存:
ldconfig -v
更新后再去重新编译安装。

相信到这里你才真正成功编译安装完成 

备份系统默认的gcc版本
mv /usr/bin/gcc /usr/bin/gcc-bak
mv /usr/bin/g++ /usr/bin/g++-bak
mv /usr/bin/c++ /usr/bin/c++-bak
创建新的gcc软连接
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc/bin/c++ /usr/bin/c++
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6
查看gcc版本:
gcc --version

还有一种方法(直接替换现有版本):
安装gmp 6.1.2
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar.xz cd gmp-6.1.2
./configure

make && make install
安装mpfr 3.1.5 mpfr依赖于gmp
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.gz
tar xvf mpfr-3.1.5.tar.gz
cd mpfr-3.1.5
./configure --with-gmp-include=/usr/local/include \
    --with-gmp-lib=/usr/local/lib

make && make install
安装mpc 1.0.3 mpc依赖于gmp和mpfr
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
tar xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --with-mpfr-include=/usr/local/include \
    --with-mpfr-lib=/usr/local/lib \
    --with-gmp-include=/usr/local/include \
    --with-gmp-lib=/usr/local/lib

make && make install
配置环境变量:
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/include/:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/include/:$CPLUS_INCLUDE_PATH
更新动态库的缓存:
ldconfig -v
编译安装GCC(先安装完依赖包cloog,gmp,isl,mpc,mpfr):
wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz
tar xvf gcc-6.3.0.tar.gz
cd gcc-6.3.0
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install
查看gcc版本:
gcc --version



上一篇:CentOS使用Privoxy上网设置shadowsocks代理的方法
下一篇:CentOS6.8/7.3下Java8 Jdk+Tomcat环境安装教程 开机启动

相关热词搜索:gcc linux centos