linux下编译安装gcc,Linux下编译安装GCC 4.9.4

开发机系统是CentOS 6.6,GCC版本是4.4.7,老司机们已经开着C++11上路了,话不多说,抓紧上车。

下载GCC

下载依赖包

可通过两种方式下载:自动下载,运行GCC源码目录内置脚本:

# cd gcc-4.9.4

# sh ./contrib/download_prerequisites

手动下载、解压,然后执行命令:

# cd gcc-4.9.4

# ln -sf path/to/gmp-x.x.x gmp

# ln -sf path/to/mpc-x.x.x mpc

# ln -sf path/to/mpfr-x.x.x mpfr

这样,编译GCC同时自动构建上述3个库。

注意要保证3个包的源码目录是干净的,否则可能报错,必要时可执行make distclean

版本要求参考脚本./contrib/download_prerequisites,以4.9.4为例

# Necessary to build GCC.

MPFR=mpfr-2.4.2

GMP=gmp-4.3.2

MPC=mpc-0.8.1

编译安装

官方文档强烈建议在源码目录之外,新建一个临时目录,用于编译;

个人建议设置安装目录,便于GCC多版本管理;

configure选项,可以根据需求自行配置。

# mkdir build-gcc-4.9.4

# cd build-gcc-4.9.4

# ../gcc-4.9.4/configure --prefix=/usr/local/gcc-4.9.4/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

# make -j4

# make install

设置环境变量

优先使用指定版本的GCC,可将下行代码添加到~/.bash_profile

export PATH=/usr/local/gcc-4.9.4/bin:$PATH

配置libstdc++.so.6

在gcc编译目录下找到最新的libstdc++.so,拷贝至/usr/lib64/,运行命令ldconfig

# ll /usr/lib64/libstdc++.so.6

lrwxrwxrwx. 1 root root 19 Nov 20 15:59 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13

# find build-gcc-4.9.4/ -name libstdc++.so.* |xargs ls -l

lrwxrwxrwx. 1 root root 19 Aug 30 2016 build-gcc-4.9.4/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 -> libstdc++.so.6.0.20

-rwxr-xr-x. 1 root root 6781772 Aug 30 2016 build-gcc-4.9.4/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20

lrwxrwxrwx. 1 root root 19 Aug 30 2016 build-gcc-4.9.4/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 -> libstdc++.so.6.0.20

-rwxr-xr-x. 1 root root 6781772 Aug 30 2016 build-gcc-4.9.4/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20

lrwxrwxrwx. 1 root root 19 Aug 30 2016 build-gcc-4.9.4/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 -> libstdc++.so.6.0.20

-rwxr-xr-x. 1 root root 6781772 Aug 30 2016 build-gcc-4.9.4/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20

# cp build-gcc-4.9.4/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20 /usr/lib64/

# ldconfig

# ll /usr/lib64/libstdc++.so.6

lrwxrwxrwx. 1 root root 19 Nov 20 16:12 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.20

好了,开车上路吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值