linux编译gcc源码,Linux gcc源码安装

问题

由于源码安装MySQL5.7时,报主机gcc版本过低,需要使用4.4及以上版本,使用gcc -v查询现用gcc版本为4.1。想要在主机上保留4.1与4.4两个版本。

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

报错信息.png

流程

1、官网下载gcc安装源码

官网下载索引:Index of /gnu/gcc,下载自己需要的版本。这次下载的是v4.4.7的gcc-4.4.7.tar.gz

2、上传Linux主机解压

tar -zxvf gcc-4.4.7.tar.gz

3、编译安装

在与gcc-4.4同级目录下新建gcc-4.4obj目录,进入gcc-4.4obj目录执行:

../gcc-4.4.7/configure --with-system-zlib --prefix=/user/gcc-4.4.7/gcc-4.4obj --enable-threads=posix --with-cpu=generic --enable--long-long --enable-languages=c,c++ --with-gmp=/user/gmp-6.1.0/gmp-6.1.0-obj --with-mpfr=/user/mpfr-3.1.6/mpfr-3.1.6-obj --build=x86_64-redhat-linux

make

make install

4、等待编译

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

make完成.png

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

make install完成.png

5、编译完成

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

gcc版本查看.png

遇到的各种错误

使用configure进行编译时:

../gcc-4.4.7/configure --prefix=/user/gcc-4.4.7/gcc-4.4obj --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++ --host=x86_64-linux

报找不到GMP与MPFR:

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

编译找不到GMP与MPFR.png

解决:编译安装GMP之后,使用--with-gmp=指定GMP路径:

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

mpfr为NO.png

继续编译安装MPFR之后,使用--with-mpfr=指定MPFR路径:

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

configure编译成功.png

configure过去了 但make报错:

make[2]: x86_64-redhat-linux-ar: Command not found

make[2]: *** [libiberty.a] Error 127

解决:因为主机上原有gcc了,使用gcc -v会看到当时gcc时configure的参数,里面有一个:--host=x86_64-redhat-linux,把这个改成--build=x86_64-redhat-linux该错误就不再出现了

configure过去了 但make报错:

configure: error: CC' has changed since the previous run: configure: former value:x86_64-redhat-linux-gcc'

configure: current value: ……

解决:因为修改了configure参数,但重新执行时没有删除gcc-4.4obj目录下文件导致有历史残留存在。把gcc-4.4obj目录下文件rm -rf *之后再执行configure……、make

configure过去了 但make报错:

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

libgcc找不到.png

解决:将gmp与mpfr的lib路径添加到环境变量LD_LIBRARY_PATH中:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/user/mpfr-3.1.6/mpfr-3.1.6-obj/lib:/user/gmp-6.1.0/gmp-6.1.0-obj/lib

make install报错

fc162672fae2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

找不到fixincludes.png

解决:make过程中被中断导致,重新执行make

参考文章

如果有root权限,可以用rpm包快速进行安装:

Linux gcc rpm包离线安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值