首页UC › 编译安装GCC 5.2.0

编译安装GCC 5.2.0

记录编译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

安装mpfr 3.1.3

mpfr依赖于gmp。

安装mpc 1.0.3

mpc依赖于gmp和mpfr。

安装GCC

编译

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

下载GCC并解压。

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

配置GCC

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

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

测试

先安装dejagnu: yum install dejagnu

然后运行如下命令:

查看测试结果:

安装

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

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

记得更下下动态库缓存。

可能遇到的问题

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测试下新安装的编译器。

编译并运行:

发表评论