专栏首页owentLinux 编译安装 GCC 4.8

Linux 编译安装 GCC 4.8

Linux 编译安装 GCC 4.8

详见: Linux 编译安装 GCC 4.8

GCC4.8发布啦,这个脚本在之前4.7的基础上做了点改进,移除一些过时的组件,增加了检测不到时自动下载源码包

PS:4.8.1开始全面支持C++11特性,并且脱离了ppl库,gdb也开始脱离ppl库了

编译安装 GCC 4.8.X

准备环境及依赖项

  1. 支持 ISO C++ 98 的编译器(GCC 4.7.2 的中期一个patch导致的整个项目开始转为由C++编译)
  2. 用于创建Ada编译器的GNAT
  3. 支持POSIX的shell或GNU bash
  4. POSIX或SVR4的 awk工具
  5. GNU binutils
  6. gzip 版本1.2.4及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 )
  7. bzip2 版本 1.0.2及以上 (此处可下载 http://www.bzip.org/)
  8. GNU make 工具 版本3.80及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 )
  9. GNU tar工具 版本1.14及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 )
  10. perl 版本5.6.1及以上 (此处可下载 http://www.perl.org/)
  11. jar或zip和unzip工具 (此处可下载 http://www.info-zip.org)
  12. gmp库 版本5.0.2及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 )
  13. mpfr库 版本2.4.2及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 )
  14. mpc库 版本0.8.1及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 )
  15. isl 版本 0.11.1 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 中gcc目录中的infrastructure目录下载 )
  16. cloog 版本0.18.1(此处可下载 ftp://gcc.gnu.org/pub/gcc/infrastructure/

我编译的环境

系统:

CentOS 6.2 & CentOS 6.5 & Suse 的不知道哪个很老的版本

系统库:

  • gzip 1.3.12
  • zip/unzip 3.0
  • GNU make 3.81
  • tar 1.23
  • perl 5.10.1
  • bzip2 1.0.5
  • gcc 4.4.7 or gcc 4.1.2 or gcc 4.4.5

编译的依赖库:

  • gmp 6.0.0a
  • mpfr 3.1.2
  • mpc 1.0.2
  • isl 0.11.1
  • cloog 0.18.1

编译目标:

  • gcc 4.8.X
  • binutils 2.24
  • gdb 7.7.1

注:

  • (所有的库都会被安装在$PREFEX_DIR里)

额外建议:

给特定用户安装 gdb的pretty-printer 用以友好打印stdc++的stl容器

  1. 在执行 install.sh 脚本前安装 ncurses-devel 和 python-devel, 用于编译gdb和开启python功能
  2. 安装完成后,把[GCC源码目录]/libstdc++-v3/python 复制到[用户目录]/.gdb
  3. 编辑[用户目录]/.gdbinit,添加 python import sys import os p = os.path.expanduser(’~/.gdb/python’) print p if os.path.exists(p): sys.path.insert(0, p) from libstdcxx.v6.printers import register_libstdcxx_printers register_libstdcxx_printers(None) end
  4. 编译安装gdb

History:

  • 2013-03-26 Created
  • 2013-04-11 改进脚本,增加统一编译选项,增加对binutils和gdb可选包的编译,增加自动把PREFIX_DIR变为绝对路径的问题,统一目录组织,修复环境变量的一些小问题
  • 2013-05-24 增加安装pretty-printer的方法
  • 2013-06-03 更新gcc到4.8.1,更新基础库,更新gdb到7.6,添加clean功能,gdb添加python支持(用于pretty-printer)
  • 2013-10-29 更新gcc到4.8.2,更新gdb到7.6.1,更新GMP到5.1.3
  • 2013-12-13 更新binutils到2.24,更新gdb到7.6.2,移除对ppl的依赖,显式开启gold等一些选项,显式开启链接时优化选项
  • 2014-05-23 更新gcc到4.8.3,更新gdb到7.7.1,完全移除对ppl的依赖,同步gcc4.9编译脚本中修复的一些问题,增加编译选项等
  • 2015-02-09 更新gcc到4.8.4(未测试,貌似这个版本加入了jit

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux 编译安装 GCC 4.9

    GCC4.9发布啦,本脚本在之前4.8的基础上做了稍许改进,更新 PS:4.9.0 开始支持C++1y特性 GCC 4.9 的大致变更如下,因为我只用C/C...

    owent
  • Linux编译安装GCC 4.7

    依赖库: + gmp 5.0.4 or gmp 5.0.5 + mpfr 3.1.0 + mpc 0.8.2 or mpc 0.9 + ppl 1.12...

    owent
  • Lnmp yum 安装脚本 (for CentOS)

    心情大好,给VPS升级了一下系统,然后自己配了LNMP安装脚本,用yum源安装的话更新比较方便点哈 ​​这个过程挺麻烦啊,所以果断要记下来,以防以后要用到 ...

    owent
  • 7 款你或许不知道的 DevOps 工具链编排解决方案

    团队之间的透明化沟通在应用程序开发过程中成为了一项巨大的挑战。一个组织中的大部分团队的独立性已经有相当长时间了。这也就意味着开发团队、业务分析团队、QA 以及业...

    LinuxSuRen
  • 电商系统中的商品模型的分析与设计

    前言 在电商系统中,商品模型至关重要,是整个电商的核心,下面通过一个简单的分析,设计一个基础的商品模型。 商品模型的演化 在以前,那时CMS很流行,最常见的模型...

    Spark学习技巧
  • 电商系统中的商品模型的分析与设计

    作者:李平,目前在一家O2O互联网公司从事设计、开发工作。业余时间喜欢跑步、看书、游戏。 来自:cnblogs.com/leefreeman/p/4060227...

    架构师小秘圈
  • 蓝宝 PGS AMD FirePro S9170 服务器加速卡发布

    AMD FirePro 全球独家代理蓝宝科技宣布,正式发布内存容量达到 32GB 的服务站加速卡蓝宝 PGS AMD FirePro S9170。蓝宝 PGS ...

    GPUS Lady
  • SpringBoot整合RabbitMQ

    RabbitMQ是开源消息队列系统,用erlang语言开发。如果不了解可以查看官网http://www.rabbitmq.com/ 这篇文章介绍一个spring...

    dalaoyang
  • 前端代码乱糟糟?是时候引入代码质量检查工具了

    为了统一团队的代码规范,除了一纸规范说明之外,还需要引入工具进行限制。虽说工具并不能完全实现规范中的规则,但至少能够在一定程度上缓解代码不统一的局面。

    书童小二
  • Oracle参数解析(shared_memory_address&hi_shared_memory_address)

    前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取

    bsbforever

扫码关注云+社区

领取腾讯云代金券