ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

CentOS Stream8 编译安装 gcc-10.2.0

2021-03-28 12:02:23  阅读:476  来源: 互联网

标签:gcc enable CentOS gnu -- 3.4 10.2 root


系统版本:

[root@xuperior-pc gcc-10.2.0]# cat /etc/centos-release

CentOS Stream release 8

当前gcc版本

[root@xuperior-pc gcc-10.2.0]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC)

 

下载release版本:

http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/

 

解压后进入src目录下载依赖:

[root@xuperior-pc gcc-10.2.0]# ./contrib/download_prerequisites

2021-03-27 09:21:57 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] -> "./gmp-6.1.0.tar.bz2" [1]
2021-03-27 09:22:14 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284/1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
2021-03-27 09:22:37 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] -> "./mpc-1.0.3.tar.gz" [1]
2021-03-27 09:23:04 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] -> "./isl-0.18.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.
[root@xuperior-pc gcc-10.2.0]#

执行configure;参数可以直接copy 当前版本的Configured with:的参数值,修改下--prefix=/usr 安装目录就可以了;不指定该参数会默认安装到/usr/local目录下

保留你需要的参数

[root@xuperior-pc gcc-10.2.0]# ./configure --enable-bootstrap --enable-languages=c,c++,lto --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --enable-gnu-indirect-function --enable-cet --with-tune=generic

 

然后执行

make && make install

等待漫长的编译过程结束.............

 

等了很久冒出来个这玩意

/usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory
7 | # include <gnu/stubs-32.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.

赶紧查一下在哪里

[root@xuperior-pc gcc-10.2.0]# yum provides */stubs-32.h
Last metadata expiration check: 3 days, 1:03:31 ago on Wed 24 Mar 2021 09:44:50 AM EDT.
glibc-devel-2.28-151.el8.i686 : Object files for development using standard C libraries.
Repo : baseos
Matched from:
Filename : /usr/include/gnu/stubs-32.h

[root@xuperior-pc gcc-10.2.0]# yum install glibc-devel

安装好,再继续.....

[root@xuperior-pc gcc-10.2.0]# yum -y install glibc-devel.i686

还不行。要装64位的

ten thousand years later.......

终于编译完了。再去install。

[root@xuperior-pc gcc-10.2.0]# /usr/local/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
Target: x86_64-pc-linux-gnu
Configured with: ./configure --enable-bootstrap --enable-languages=c,c++,lto --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --enable-gnu-indirect-function --enable-cet --with-tune=generic
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (GCC)
[root@xuperior-pc gcc-10.2.0]#

[root@xuperior-pc gcc-10.2.0]# /usr/local/bin/g++ -v
Using built-in specs.
COLLECT_GCC=/usr/local/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
Target: x86_64-pc-linux-gnu
Configured with: ./configure --enable-bootstrap --enable-languages=c,c++,lto --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --enable-gnu-indirect-function --enable-cet --with-tune=generic
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (GCC)

std对应6.0.28

[root@xuperior-pc gcc-10.2.0]# ls /usr/local/lib64 -al | grep stdc++
-rw-r--r--. 1 root root 53771084 Mar 27 22:24 libstdc++.a
-rw-r--r--. 1 root root 13362524 Mar 27 22:24 libstdc++fs.a
-rwxr-xr-x. 1 root root 905 Mar 27 22:24 libstdc++fs.la
-rwxr-xr-x. 1 root root 965 Mar 27 22:24 libstdc++.la
lrwxrwxrwx. 1 root root 19 Mar 27 22:24 libstdc++.so -> libstdc++.so.6.0.28
lrwxrwxrwx. 1 root root 19 Mar 27 22:24 libstdc++.so.6 -> libstdc++.so.6.0.28
-rwxr-xr-x. 1 root root 20941400 Mar 27 22:24 libstdc++.so.6.0.28
-rw-r--r--. 1 root root 2394 Mar 27 22:24 libstdc++.so.6.0.28-gdb.py

看下支持的std库版本如下:

[root@xuperior-pc gcc-10.2.0]# strings /usr/local/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
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2

如果prefix参数指定其他目录可以自行拷贝:bin include lib lib64 libexec share到usr或者local下

编译脚本核运行的时候如果不想改默认版本请自行指定gcc

/usr/local/bin/g++ 

/usr/local/bin/gcc

或者临时修改环境变量

export PATH=${YOUR_DIR}/gcc-10.2.0/bin:$PATH

运行时指定动态库加载路径

 

export LD_LIBRARY_PATH=${YOUR_DIR}/gcc-10.2.0/lib64:$LD_LIBRARY_PATH

 

Done!!

 

标签:gcc,enable,CentOS,gnu,--,3.4,10.2,root
来源: https://www.cnblogs.com/xuperior/p/14587997.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有