linux 编译安装GCC4.9.3

转载地址:https://blog.csdn.net/double_qiang/article/details/79493274
第一步
    首先下载gcc源码包
    wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2
第二步
    将下载好的文件放在非root用户也有读权限的地方,例如 /home/myuser 或者 /usr/gcc-build/ 下面第四步我会讲为什么要这么做.
第三步
    解压文件,做一些准备工作
tar xjvf gcc-4.9.3.tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites
    安装gcc需要5个组件,download_prerequisites 的任务就是下载这些组件分别是:
cloog-0.18.1
gmp-4.3.2
isl-0.12.2
mpc-0.8.1
mpfr-2.4.2
    如果遇到download_prerequisites里面的地址无法访问 推荐自行下载这些组件到目录gcc-4.9.3/,解压。
    然后将download_prerequisites里面的wget全部注释掉,再执行 :
./contrib/download_prerequisites
    做好上面的准备就可以configure了,建议另建一个目录来存放编译文件,默认安装目录是 /usr/local/ 可以使用 –prefix 修改自定义路径。
cd ..
mkdir gcc-4.9.3-build-temp
cd gcc-4.9.3-build-temp
../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install
    gcc编译编译很慢,一切顺利的话,取决于你的配置40分钟-1个小时后再来看结果吧,我用公司的16核服务器都编译了20分钟
第四步
    配置库文件和头文件路径
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
    执行 gcc -v 可以看到下面的信息, 恭喜你成功一半了!
gcc -v
    使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
    目标:x86_64-unknown-linux-gnu
    配置为:../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    线程模型:posix
    gcc 版本 4.9.3 (GCC)
    上面第二步,我讲到了讲解压的gcc-4.9.3 放到 非root用户也有读权限 的目录,并不是因为无法编译,而是在调试过程中,一些常用的stl容器和算法都没有问题,但 std::string 等组件定位到了我的编译目录.
    具体原因我没细查~ 可能是因为 libstdc++-v3是一个过时的库,没有默认安装到/usr/local/include/
    像这样:
/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h: No such file or directory
/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/allocator.h: No such file or directory
    通过上面也看到了,其实也不是没有这个文件,而是非root用户是没有权限访问root用户下面内容的
第 五步
    难道上面不是已经完成安装了吗? 如果你只是编译不调试的话,确实是安装完毕了,不用往下看了。这个问题曾整整折腾了我一天时间,各种google,各种资料最后才算解决。
    我也看了其他人的教程,都没有提到这一点,特此写这篇文章也算是加深记忆和便于以后查看,请继续看一步
第 六步
    言归正传,升级完gcc,还需要升级gdb,可能是因为版本不匹配等原因导致调试 不能 print 变量提示找不到符号,以及其他莫名其妙的问题…
    这里我选择安装的时候gdb-4.9 ,安装gdb需要3个组件 ,python,python-devel ,texinfo
wget http://mirrors.ustc.edu.cn/gnu/gdb/gdb-7.9.tar.gz
tar xzvf gdb-7.9.tar.gz
cd gdb-7.9
./configure --with-python
make
make install
    如果在安装过程中提示找不到makeinfo命令或其他错误,切换root用户再试一次,具体原因我没细查
没有python的支持也可以编译,去掉–with-python选项就行了,但是gdb是无法加载python脚本的,例如c++ 的 pretty-printer 脚本是无法使用的
    如果出现configure: error: C++ compiler missing or inoperational之类的错误,需要安装G++的编译器。
  $sudo apt-get install g++

参考:
    gcc下载地址:ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/
    编译记录:http://blog.csdn.net/gengshenghong/article/details/7498085
    64位12.04 ubuntu安装gcc:http://blog.csdn.net/u012730840/article/details/21503297


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值