编译安装GCC 5.2.0

原文  http://blog.atime.me/note/install-gcc-5.2.0-from-source.html

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

平时使用的服务器是CentOS5,自带的gcc编译器还是8年前发布的4.1.2版本,完全没法写C++11的代码,因为不想升级操作系统,只好自己下载源码编译。

安装过程挺dan疼的,只好记录下来。

安装依赖库

GCC依赖于gmp 4.2+, mpfr 2.4+和mpc 0.8+,这里直接下载安装最新的版本。

为了省事,所有的库都直接装到/usr/local目录下的对应目录。

安装gmp 6.0

wget https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2
tar xvf gmp-6.0.0a.tar.bz2
cd gmp-6.0.0
./configure
make -j4
make install

安装mpfr 3.1.3

mpfr依赖于gmp。

wget http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.bz2
tar xvf mpfr-3.1.3.tar.bz2
cd mpfr-3.1.3
./configure --with-gmp-include=/usr/local/include     --with-gmp-lib=/usr/local/lib
make -j4
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 -j4
make install

安装GCC

编译

建议先阅读下官方的 安装文档 。

下载GCC并解压。

wget ftp://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
tar xvf gcc-5.2.0.tar.bz2
cd gcc-5.2.0

先unset若干个系统变量,以免出现某些宏找不到的情况。

unset CPLUS_INCLUDE_PATH LIBRARY_PATH

配置GCC

./configure     --with-gmp-include=/usr/local/include     --with-gmp-lib=/usr/local/lib     --with-mpfr-include=/usr/local/include     --with-mpfr-lib=/usr/local/lib     --with-mpc-include=/usr/local/include     --with-mpc-lib=/usr/local/lib     --enable-languages=c,c++     --enable-threads=posix     --disable-multilib

详细的配置项说明可参考 安装文档 ,这里只编译c和c++的编译器。

然后 make -j8 ,启用多线程编译。

测试

先安装dejagnu: yum install dejagnu 。

然后运行如下命令:

make -j8 check-gcc

查看测试结果:

./contrib/test_summary

安装

如果编译顺利通过, make install 即可。

gcc和g++默认被安装到 /usr/local/bin 目录下,libgcc和libstdc++默认被安装到/usr/local/lib64 (x64)。

记得更下下动态库缓存。

ldconfig

可能遇到的问题

XXXX not defined

遇到某个宏没有定义的情况,先unset C_INCLUDE_PATH 再尝试。

braced spec is invalid

很dan疼的一个问题,搜遍了全网也没见有比较正式的解决方案。目前看上去比较靠谱的方法可参考 这里 ,具体操作就是手动改一下某个specs文件。

我这里是 host-x86_64-unknown-linux-gnu/gcc/specs ,把其中所有的%:sanitize(xxx) 改为 fsanitize=xxx 。

测试C++11

写一个脑残的cpp测试下新安装的编译器。

#include <atomic>
#include <iostream>
using namespace std;

int main() {
    atomic<long long> num(1L << 14);
    cout << ++num << endl;
}

编译并运行:

/usr/local/bin/g++ -std=c++11 b.cpp -o b
LD_LIBRARY_PATH=/usr/local/lib64 ./b
时间: 2024-10-11 15:57:48

编译安装GCC 5.2.0的相关文章

在CentOS 6.4中编译安装gcc 4.8.1

在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.cnblogs.com/codemood/archive/2013/06/01/3113200.html 1. 安装gcc和g++ 新安装的CentOS缺少编译环境,必须先安装旧版本的gcc, 然后再进行自举编译 yum -y install gccyum -y install gcc-c++ 2.

转:在CentOS下编译安装GCC

转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观  14 次吐槽 我们知道,关于 GCC 在 CentOS 下通过 yum 安装默认版本号,CentOS 5 是 4.1.2:CentOS 6 是 4.4.7:CentOS 7 是 4.8.3.很多时候在编译安装软件都需要高版本的 GCC,否则就会报错.那么如何升级 GCC 的版本呢? 首先要确认升

编译安装 gcc 4.9并验证使用

1. 准备环境(GCC 编译器) centOS 6.3 cat /proc/version Linux version 2.6.32-279.el6.x86_64 ([email protected]) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 12:19:21 UTC 2012 gcc --version gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) 2

centos 6.5 编译安装了 Nginx1.6.0+MySQL5.6.19+PHP5.5.14

centos 6.5 编译安装了 Nginx1.6.0+MySQL5.6.19+PHP5.5.14--------------------------------------------------------------------------------------------- 安装包:http://pan.baidu.com/s/1jG8iose SecureCRT下载地址:http://pan.baidu.com/s/1kTtnfKV FlashFXP下载地址:http://pan.b

CentOS 6.4中升级编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 以及Kdump配置

在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 今天在isocpp上看到"GCC 4.8.1 released, C++11 feature complete"这个消息,非常兴奋.终于有一个全面支持C++11语言特性的编译器了! 当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以去尝试各种特性了.另外,之前也有消息说Clang功能上也100%支持C++11了,但是内部还在做

编译安装gcc

不过使用yum安装的gcc并非当前的最新版本, 目前gcc的最新版本为4.9.0(gcc 4.8开始全面支持C 11和C++ 11的新特性).如果我们想要安装最新版本的gcc,那么就需要自行安装gcc. 笔者初次安装gcc时,在网络上搜寻了大量的gcc安装配置教程,许多教程的内容非常之多,结果把自己搞晕了,编译安装的时候还老是出现各种错误.最后查阅官方文档才发现,自行安装新版本的gcc并不复杂,根本没有那些教程中说的那样繁琐(有些教程居然还要修改几个配置文件). 下载gcc安装文件 在安装gcc

Centos 6.9 编译安装gcc 4.8.5

前言 GCC(GNU Compiler Collection,GNU编译器合集)是linux以及其他类UNIX平台上进行开源项目,软件开发等必不可少的工具链组成之一.(其他的还有clang以及llvm等编译器) 对于程序员以及系统管理员而言,经常需要从软件的源码进行手动编译安装, 不论是configure脚本,还是make工具,最终都需要调用gcc(或者其它编译器)来进行实际的编译工作. 另外,各种软件也经常需要使用gcc的新版特性,并且与旧版gcc共存,根据实际的需求进行调用. 实验环境:VM

CentOS6.8下编译安装GCC

关于 GCC 在 CentOS 下通过 yum 安装默认版本号,CentOS 5 是 4.1.2:CentOS 6 是 4.4.7:CentOS 7 是 4.8.3.很多时候在编译安装软件都需要高版本的 GCC,否则就会报错.那么如何升级 GCC 的版本呢? 首先要确认升级到的 GCC 版本号.目前 GCC 的最新版已经到了 5.2,而 CentOS 7 则依然使用其 4.8,所以基于兼容性考虑,我选择升级到 4.8.5.GCC 官网:https://gcc.gnu.org 下面开始一步一步来编

CentOS编译安装GCC 4.9.2成功

在Linux上编译安装gcc是个寻烦恼的活,对于像我这样习惯于在Windows上面使用二进制安装包的人来说,自已编译安装gcc是个相当大的挑战,今天直接挑战最新版的gcc,是4.9.2版本的,做之前查阅了大量的资料,本次安装使用的系统是CentOS6.4,自带的gcc是4.4.7版本,具体折腾过成如下: 准备工作, 到GNU官方FTP下载GCC的源码包gcc-4.9.2.tar.gz. 下载下面三个依赖的安装包,这三个包的版本在gcc-4.9.2/contrib/download_prerequ