gcc4.8.5安装过程
gcc4.8.5安装过程
1.获取gcc4.8.5的源码包(不同的版本,基本是只需要换掉后面的版本号即可更换下载地址)
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
2.解压压缩包
tar -jxvf gcc-4.8.5.tar.bz2
3.进入解压后的目录
cd gcc-4.8.5
4.下载、配置和安装需要的依赖库
./contrib/download_prerequisites
这个脚本文件会自动帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
这一步会出现“ln: creating symbolic link `mpfr': Operation not supported”错误。
原因:
出现这类问题,主要是由于在编译的时候,要用ln去建立一些软链接,
而这些文件是从Windows中,通过VMWare虚拟机共享进Linux的,
而虽然此种操作在Linux系统中很常见,但Windows不支持,所以,
编译会报错。
解决:把gcc安装包拷贝到/root目录下进行编译
5.直接在当前目录下创建一个目录,存放编译后的文件。
mkdir gcc-build-4.8.5
6.进入这个目录来编译
cd gcc-build-4.8.5
7.生成Makefile文件,准备编译整个项目(gcc4.8.5)
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
前面的..表示会进入到上一层目录执行configure。所以gcc-build-4.8.5目录必须在gcc-4.8.5里面创建,也就是我们这样创建的。如果你想自己定义gcc-build-4.8.5目录的位置,你要处理好这里的路径问题。不建议处理,一个安装过程而已,不必折腾,就按照上述方法弄就行了。
8.编译gcc4.8.5的源码,非常耗时,时间决定于你的机器的性能。
make
不建议使用make -j4 方式编译,很可能会失败。-j4选项是make对多核处理器的优化。虽然直接make速度慢点,只要不出错,总体上还是可以接受的。
9.安装gcc4.8.5(非root用户要在前面加sudo)
make install
10.重启系统,让gcc4.8.5生效
reboot
11.查看gcc和g++的版本
gcc --version
g++ --version
提示为:
gcc (GCC) 4.8.5
g++ (GCC) 4.8.5
就表示已经安装成功,并且生效了。
特别注意,第10步很容易被忽略。如果不重启系统,查看的版本还是之前的老版本,会让你误认为安装没有成功的。
原文链接:https://blog.csdn.net/cffishappy/article/details/80182935
升级gcc4.8 遇到 fatal error: gnu/stubs-32.h: No such file or directory 问题的解决方法
升级gcc4.8 遇到 fatal error: gnu/stubs-32.h: No such file or directory 问题的解决方法
maxclumsy 2016-03-05 23:52:28
需要升级gcc,发行版Centos 6.5 (final),原版本gcc 4.4.7,打算升级为4.8.5.
从官网下载gcc-4.8.5.tar.gz
tar xzvf gcc-4.8.5.tar.gz 解压
cd gcc-4.8.5
自带一个脚本可以安装所需要的库(否则自己每个手动安装是件非常痛苦且困难的事情)
./contrib/download_prerequisites 开始安装依赖
./configure 中间可能会提示没有isl,但是我手动安装isl-0.14,isl-0.15都不起作用,可忽略。安装isl时还要安装其他依赖。若无错误信息执行下面make
make -j8
此过程非常耗时耗CPU,中间可能会遇到类似
usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
这样的错误,为解决这个问题又手动安装了无数个依赖,结果依然无效。最后,在这里找到解决方法。
解决方法 |
同时还有一个回答说明了原因
问题原因 |
也就是说,在64位系统中GCC/UPC multilib feature可用,但是却没有安装32位的glibc,就会报错(尼玛,为毛要32位的库。。。?)所以解决办法有两个,一个是关闭multilib,一个是安装32位的glibc。
我选择的是后者。这时候看上面那个图的解决办法,我是Centos 6.5,所以直接把glibc-devel.i686,libstdc++-devel.i686全部安装
sudo yum install glibc-devel.i686 libstdc++-devel.i686
然后重新
./configure
make -j8 (再次强调,此过程非常耗时,我i7-2600,耗时一个小时以上,所以可以去干其他事情了)
sudo make install