CentOS Linux 6.x/7.x/8.x及更高版本上安装 GCC 7.4 安装步骤

18 篇文章 1 订阅

     CentOS 6.10 安装完成以后,查看GCC的版本,发现是 gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC),这个版本的GCC已经比较老了,对目前新的C++特性支持得不是很好,本文将笔者自己安装GCC的流程记录下来,便于以后参考。本文之安装步骤适合CentOS Linux 6 及以上版本,包括CentOS Linux 7.x与CentOS Linux 8.x。

一、下载GCC 7.40 源代码

http://ftp.gnu.org.ua/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz

二、创建一个目录用于编译GCC

进入Linux系统,创建 /gcc_build

cd /
mkdir /gcc_build
cd /gcc_build
wget http://ftp.gnu.org.ua/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz

三、 开始安装编译

在 gcc-7.4.0.tar.gz 下载完成后,输入如下命令:

tar -xzvf gcc-7.4.0.tar.gz
cd gcc-7.4.0/contrib
vi download_prerequisites

为什么要修改 download_prerequisites 这个脚本,是因为 download_prerequisites 里的原始指定的站点ftp://gcc.gnu.org好像不能访问,修改后的download_prerequisites文件部分如下:

#base_url='ftp://gcc.gnu.org/pub/gcc/infrastructure/'

base_url='https://gcc.gnu.org/pub/gcc/infrastructure/'

保存好 download_prerequisites 后

cd ..
yum -y install texinfo
./contrib/download_prerequisites

提前检查安装其它依赖项(笔者在编译过程中碰到问题总结的)

1、检查g++是否安装,

g++ -v

如果提示没有安装,请用如下命令安装

yum install gcc-c++

2、安装zlib头文件,gcc需要用到

yum install zlib-devel.x86_64

3、提前安装那个texinfo包,然后创建build目录并configure:

mkdir build
cd build

../configure --prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-bugurl=http://bugzilla.redhat.com/bugzilla \
--enable-bootstrap \
--enable-shared \
--enable-threads=posix \
--enable-checking=release \
--with-system-zlib \
--enable-__cxa_atexit \
--disable-libunwind-exceptions \
--enable-gnu-unique-object \
--enable-languages=c,c++,objc,obj-c++ \
--disable-dssi --disable-libjava-multilib \
--disable-multilib \
--with-ppl \
--with-cloog \
--with-tune=generic \
--with-arch_32=x86-64 \
--build=x86_64-redhat-linux

笔者的这个配置项不支持java编译,不支持ada,因为ada语言在实际当中用不着,不支持java编译。

4、然后执行make

make -j4

-j4 选项是make对多核处理器的并行编译优化,如果不成功请使用 make。make -j带一个参数,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。并行编译是可以提高编译速度的,但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。

四、安装

make install

备注:

查看gcc的安装情况,进入 /usr/lib64 目录,执行如下命令:

cd /usr/lib64
ls -l libstd*

可以看到结果如下:

-rw-r--r--. 1 root root 29659832 Nov  3 15:49 libstdc++.a
-rw-r--r--. 1 root root 10387592 Nov  3 15:49 libstdc++fs.a
-rwxr-xr-x. 1 root root      899 Nov  3 15:49 libstdc++fs.la
-rwxr-xr-x. 1 root root      959 Nov  3 15:49 libstdc++.la
lrwxrwxrwx. 1 root root       19 Nov  3 15:49 libstdc++.so -> libstdc++.so.6.0.24
lrwxrwxrwx. 1 root root       19 Nov  3 15:49 libstdc++.so.6 -> libstdc++.so.6.0.24
-rwxr-xr-x. 1 root root   989840 Jun 19  2018 libstdc++.so.6.0.13
-rwxr-xr-x. 1 root root 11705927 Nov  3 15:49 libstdc++.so.6.0.24
-rw-r--r--. 1 root root     2385 Nov  3 15:49 libstdc++.so.6.0.24-gdb.py

libstdc++.so 已经指向 libstdc++.so.6.0.24,libstdc++.so.6.0.24 是刚才编译安装产生的,执行命令:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

输出如下:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

可以看到 GLIBCXX_3.4.24 这个符号,说明是gcc 7.40正确安装了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值