Linux怎样更新Centos下Gcc版本支持C++17?

简介: Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)centos7直接yum安装的那个gcc版本为4.8.5,对于大多数的需求来说都是低了。系统安装镜像里的那个版本也是4.8.5。 在g++ 7 以上的版本中添加了对c++17 的支持,所以为了工作需要现在需要升级到高版本。

[[Linux下的软连接、软链接的方式]]


[[Linux使用的filesystem库来自于c++17提供的新特性]]


[[Linux下centos查看 GCC 、G++版本]]


[[Linux 下centos 查看 -std 是否支持 C17 ]]


Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)

centos7直接yum安装的那个gcc版本为4.8.5,对于大多数的需求来说都是低了。系统安装镜像里的那个版本也是4.8.5。 在g++ 7 以上的版本中添加了对c++17 的支持,所以为了工作需要现在需要升级到高版本。

sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
source /opt/rh/devtoolset-8/enable


后边执行mv命令的时候如果报错不用太过惊慌,这几句是用来替换掉直接安装的4.8.5版本的,但是没安装4.8.5软链接建立的命令也还是要执行的。


mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
mv /usr/bin/c++ /usr/bin/c++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++


可以查看一下版本看看了

gcc --version
g++ --version
c++ --version


ubuntu16.04安装gcc-8 g++8.0

https://blog.csdn.net/dream_for_/article/details/117201988


GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名

https://blog.csdn.net/abc5382334/article/details/45049735


嵌入式Linux文件IO,GCC编译流程及参数分析,静态库创建和使用,ar crs libhello.a hello.o创建静态库,nm查看静态库中符号信息

https://blog.csdn.net/m0_37542524/article/details/83754738# Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)


实际手操:

直接贴命令行


[zryTest@master src]$  g++ ReadFileDemo-4.cpp -o Test-4
ReadFileDemo-4.cpp:6:22: fatal error: filesystem: No such file or directory
 #include <filesystem>
                      ^
compilation terminated.
[zryTest@master src]$  g++ ReadFileDemo-4.cpp -o Test-4 -std=c++17
g++: error: unrecognized command line option ‘-std=c++17’
[zryTest@master src]$ ls /usr/bin/gcc* -l
-rwxr-xr-x 2 root root 768608 Sep 30  2020 /usr/bin/gcc
-rwxr-xr-x 1 root root  27088 Sep 30  2020 /usr/bin/gcc-ar
-rwxr-xr-x 1 root root  27088 Sep 30  2020 /usr/bin/gcc-nm
-rwxr-xr-x 1 root root  27088 Sep 30  2020 /usr/bin/gcc-ranlib
[zryTest@master src]$ rpm -qa|grep gcc
gcc-gfortran-4.8.5-44.el7.x86_64
gcc-c++-4.8.5-44.el7.x86_64
libgcc-4.8.5-44.el7.x86_64
gcc-4.8.5-44.el7.x86_64
[zryTest@master src]$ man gcc
[zryTest@master src]$ sudo yum install centos-release-scl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.huaweicloud.com
clickhouse-stable/signature                                                             |  833 B  00:00:00
Retrieving key from https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml.key
clickhouse-stable/signature                                                             | 3.0 kB  00:00:01 !!!
https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for clickhouse-stable
Trying other mirror.
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-3.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-3.el7.centos.noarch
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
 Package                            Arch                Version                      Repository           Size
===============================================================================================================
Installing:
 centos-release-scl                 noarch              2-3.el7.centos               extras               12 k
Installing for dependencies:
 centos-release-scl-rh              noarch              2-3.el7.centos               extras               12 k
Transaction Summary
===============================================================================================================
Install  1 Package (+1 Dependent package)
Total download size: 24 k
Installed size: 39 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): centos-release-scl-2-3.el7.centos.noarch.rpm                                     |  12 kB  00:00:00
(2/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm                                  |  12 kB  00:00:00
---------------------------------------------------------------------------------------------------------------
Total                                                                          110 kB/s |  24 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : centos-release-scl-rh-2-3.el7.centos.noarch                                                 1/2
  Installing : centos-release-scl-2-3.el7.centos.noarch                                                    2/2
  Verifying  : centos-release-scl-2-3.el7.centos.noarch                                                    1/2
  Verifying  : centos-release-scl-rh-2-3.el7.centos.noarch                                                 2/2
Installed:
  centos-release-scl.noarch 0:2-3.el7.centos
Dependency Installed:
  centos-release-scl-rh.noarch 0:2-3.el7.centos
Complete!
[zryTest@master src]$
[zryTest@master src]$
[zryTest@master src]$ sudo yum install devtoolset-8-gcc*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * centos-sclo-rh: mirrors.huaweicloud.com
 * centos-sclo-sclo: mirrors.huaweicloud.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.huaweicloud.com
centos-sclo-rh                                                                          | 3.0 kB  00:00:00
centos-sclo-sclo                                                                        | 3.0 kB  00:00:00
clickhouse-stable/signature                                                             |  833 B  00:00:00
Retrieving key from https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml.key
clickhouse-stable/signature                                                             | 3.0 kB  00:00:01 !!!
https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for clickhouse-stable
Trying other mirror.
(1/2): centos-sclo-sclo/x86_64/primary_db                                               | 300 kB  00:00:00
(2/2): centos-sclo-rh/x86_64/primary_db                                                 | 3.4 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package devtoolset-8-gcc.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: devtoolset-8-binutils >= 2.22.52.0.1 for package: devtoolset-8-gcc-8.3.1-3.2.el7.x86_64
--> Processing Dependency: devtoolset-8-runtime for package: devtoolset-8-gcc-8.3.1-3.2.el7.x86_64
---> Package devtoolset-8-gcc-c++.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: devtoolset-8-libstdc++-devel = 8.3.1-3.2.el7 for package: devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64
---> Package devtoolset-8-gcc-gdb-plugin.x86_64 0:8.3.1-3.2.el7 will be installed
---> Package devtoolset-8-gcc-gfortran.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: devtoolset-8-libquadmath-devel = 8.3.1-3.2.el7 for package: devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64
--> Processing Dependency: libgfortran5 >= 8.1.1 for package: devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64
---> Package devtoolset-8-gcc-plugin-devel.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: gmp-devel >= 4.1.2-8 for package: devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64
--> Processing Dependency: libmpc-devel >= 0.8.1 for package: devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64
--> Processing Dependency: mpfr-devel >= 2.2.1 for package: devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64
--> Running transaction check
---> Package devtoolset-8-binutils.x86_64 0:2.30-55.el7.2 will be installed
---> Package devtoolset-8-libquadmath-devel.x86_64 0:8.3.1-3.2.el7 will be installed
---> Package devtoolset-8-libstdc++-devel.x86_64 0:8.3.1-3.2.el7 will be installed
---> Package devtoolset-8-runtime.x86_64 0:8.1-1.el7 will be installed
--> Processing Dependency: scl-utils >= 20120927-11 for package: devtoolset-8-runtime-8.1-1.el7.x86_64
---> Package gmp-devel.x86_64 1:6.0.0-15.el7 will be installed
---> Package libgfortran5.x86_64 0:8.3.1-2.1.1.el7 will be installed
---> Package libmpc-devel.x86_64 0:1.0.1-3.el7 will be installed
---> Package mpfr-devel.x86_64 0:3.1.1-4.el7 will be installed
--> Running transaction check
---> Package scl-utils.x86_64 0:20130529-19.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
 Package                                Arch           Version                    Repository              Size
===============================================================================================================
Installing:
 devtoolset-8-gcc                       x86_64         8.3.1-3.2.el7              centos-sclo-rh          30 M
 devtoolset-8-gcc-c++                   x86_64         8.3.1-3.2.el7              centos-sclo-rh          12 M
 devtoolset-8-gcc-gdb-plugin            x86_64         8.3.1-3.2.el7              centos-sclo-rh         123 k
 devtoolset-8-gcc-gfortran              x86_64         8.3.1-3.2.el7              centos-sclo-rh          12 M
 devtoolset-8-gcc-plugin-devel          x86_64         8.3.1-3.2.el7              centos-sclo-rh         1.4 M
Installing for dependencies:
 devtoolset-8-binutils                  x86_64         2.30-55.el7.2              centos-sclo-rh         5.5 M
 devtoolset-8-libquadmath-devel         x86_64         8.3.1-3.2.el7              centos-sclo-rh         155 k
 devtoolset-8-libstdc++-devel           x86_64         8.3.1-3.2.el7              centos-sclo-rh         2.7 M
 devtoolset-8-runtime                   x86_64         8.1-1.el7                  centos-sclo-rh          20 k
 gmp-devel                              x86_64         1:6.0.0-15.el7             base                   181 k
 libgfortran5                           x86_64         8.3.1-2.1.1.el7            base                   796 k
 libmpc-devel                           x86_64         1.0.1-3.el7                base                    32 k
 mpfr-devel                             x86_64         3.1.1-4.el7                base                    68 k
 scl-utils                              x86_64         20130529-19.el7            base                    24 k
Transaction Summary
===============================================================================================================
Install  5 Packages (+9 Dependent packages)
Total download size: 65 M
Installed size: 188 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/centos-sclo-rh/packages/devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
Public key for devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm is not installed
(1/14): devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm                                  | 5.5 MB  00:00:00
(2/14): devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64.rpm                                   |  12 MB  00:00:00
(3/14): devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64.rpm                            | 123 kB  00:00:00
(4/14): devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64.rpm                              |  12 MB  00:00:00
(5/14): devtoolset-8-gcc-8.3.1-3.2.el7.x86_64.rpm                                       |  30 MB  00:00:01
(6/14): devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64.rpm                         | 155 kB  00:00:00
(7/14): devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64.rpm                           | 2.7 MB  00:00:00
(8/14): devtoolset-8-runtime-8.1-1.el7.x86_64.rpm                                       |  20 kB  00:00:00
(9/14): libgfortran5-8.3.1-2.1.1.el7.x86_64.rpm                                         | 796 kB  00:00:00
(10/14): gmp-devel-6.0.0-15.el7.x86_64.rpm                                              | 181 kB  00:00:00
(11/14): libmpc-devel-1.0.1-3.el7.x86_64.rpm                                            |  32 kB  00:00:00
(12/14): mpfr-devel-3.1.1-4.el7.x86_64.rpm                                              |  68 kB  00:00:00
(13/14): scl-utils-20130529-19.el7.x86_64.rpm                                           |  24 kB  00:00:00
(14/14): devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64.rpm                         | 1.4 MB  00:00:00
---------------------------------------------------------------------------------------------------------------
Total                                                                           32 MB/s |  65 MB  00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
Importing GPG key 0xF2EE9D55:
 Userid     : "CentOS SoftwareCollections SIG (https://wiki.centos.org/SpecialInterestGroup/SCLo) <security@centos.org>"
 Fingerprint: c4db d535 b1fb ba14 f8ba 64a8 4eb8 4e71 f2ee 9d55
 Package    : centos-release-scl-rh-2-3.el7.centos.noarch (@extras)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:gmp-devel-6.0.0-15.el7.x86_64                                                            1/14
  Installing : mpfr-devel-3.1.1-4.el7.x86_64                                                              2/14
  Installing : libmpc-devel-1.0.1-3.el7.x86_64                                                            3/14
  Installing : scl-utils-20130529-19.el7.x86_64                                                           4/14
  Installing : devtoolset-8-runtime-8.1-1.el7.x86_64                                                      5/14
  Installing : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64                                          6/14
  Installing : devtoolset-8-binutils-2.30-55.el7.2.x86_64                                                 7/14
  Installing : libgfortran5-8.3.1-2.1.1.el7.x86_64                                                        8/14
  Installing : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64                                                      9/14
  Installing : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64                                       10/14
  Installing : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64                                            11/14
  Installing : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64                                                 12/14
  Installing : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64                                        13/14
  Installing : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64                                          14/14
  Verifying  : libgfortran5-8.3.1-2.1.1.el7.x86_64                                                        1/14
  Verifying  : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64                                                  2/14
  Verifying  : scl-utils-20130529-19.el7.x86_64                                                           3/14
  Verifying  : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64                                          4/14
  Verifying  : devtoolset-8-runtime-8.1-1.el7.x86_64                                                      5/14
  Verifying  : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64                                             6/14
  Verifying  : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64                                                      7/14
  Verifying  : 1:gmp-devel-6.0.0-15.el7.x86_64                                                            8/14
  Verifying  : libmpc-devel-1.0.1-3.el7.x86_64                                                            9/14
  Verifying  : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64                                        10/14
  Verifying  : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64                                       11/14
  Verifying  : mpfr-devel-3.1.1-4.el7.x86_64                                                             12/14
  Verifying  : devtoolset-8-binutils-2.30-55.el7.2.x86_64                                                13/14
  Verifying  : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64                                          14/14
Installed:
  devtoolset-8-gcc.x86_64 0:8.3.1-3.2.el7                  devtoolset-8-gcc-c++.x86_64 0:8.3.1-3.2.el7
  devtoolset-8-gcc-gdb-plugin.x86_64 0:8.3.1-3.2.el7       devtoolset-8-gcc-gfortran.x86_64 0:8.3.1-3.2.el7
  devtoolset-8-gcc-plugin-devel.x86_64 0:8.3.1-3.2.el7
Dependency Installed:
  devtoolset-8-binutils.x86_64 0:2.30-55.el7.2          devtoolset-8-libquadmath-devel.x86_64 0:8.3.1-3.2.el7
  devtoolset-8-libstdc++-devel.x86_64 0:8.3.1-3.2.el7   devtoolset-8-runtime.x86_64 0:8.1-1.el7
  gmp-devel.x86_64 1:6.0.0-15.el7                       libgfortran5.x86_64 0:8.3.1-2.1.1.el7
  libmpc-devel.x86_64 0:1.0.1-3.el7                     mpfr-devel.x86_64 0:3.1.1-4.el7
  scl-utils.x86_64 0:20130529-19.el7
Complete!
[zryTest@master src]$ scl enable devtoolset-8 bash
[zryTest@master src]$ source /opt/rh/devtoolset-8/enable
[zryTest@master src]$ mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv: cannot move ‘/usr/bin/gcc’ to ‘/usr/bin/gcc-4.8.5’: Permission denied
[zryTest@master src]$ ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
ln: failed to create symbolic link ‘/usr/bin/gcc’: File exists
[zryTest@master src]$ su -
Password:
Last login: Tue Mar 21 10:10:14 CST 2023 on pts/1
[root@master ~]# mv /usr/bin/gcc /usr/bin/gcc-4.8.5
[root@master ~]# ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
[root@master ~]# mv /usr/bin/g++ /usr/bin/g++-4.8.5
[root@master ~]# ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
[root@master ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/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 --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
[root@master ~]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/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 --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
[root@master ~]# c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../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-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
[root@master ~]# mv /usr/bin/c++ /usr/bin/c++-4.8.5
[root@master ~]# ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++
[root@master ~]# c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/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 --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
[root@master ~]#


可以看到,这里的 gcc、 g++、c++、的版本已经到了8.3.1 2019版本了。

接下来再次通过 man g++ 查看 -std的介绍文档依旧 保持不变,

尝试更新man 手册 [[Linux 更新man说明手册,man中文手册]]


再次使用g++ 编译已经解决库找不到的问题了。 并且 -std=c++17已经可以识别出来了。


服务器高级架构体系:[[Linux下的软连接、软链接的方式]]


[[Linux使用的filesystem库来自于c++17提供的新特性]]


[[Linux下centos查看 GCC 、G++版本]]


[[Linux 下centos 查看 -std 是否支持 C17 ]]


Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)

centos7直接yum安装的那个gcc版本为4.8.5,对于大多数的需求来说都是低了。系统安装镜像里的那个版本也是4.8.5。 在g++ 7 以上的版本中添加了对c++17 的支持,所以为了工作需要现在需要升级到高版本。


sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
source /opt/rh/devtoolset-8/enable


后边执行mv命令的时候如果报错不用太过惊慌,这几句是用来替换掉直接安装的4.8.5版本的,但是没安装4.8.5软链接建立的命令也还是要执行的。


mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
mv /usr/bin/c++ /usr/bin/c++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++
1


可以查看一下版本看看了


gcc --version
g++ --version
c++ --version


ubuntu16.04安装gcc-8 g++8.0

https://blog.csdn.net/dream_for_/article/details/117201988


GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名

https://blog.csdn.net/abc5382334/article/details/45049735


嵌入式Linux文件IO,GCC编译流程及参数分析,静态库创建和使用,ar crs libhello.a hello.o创建静态库,nm查看静态库中符号信息

https://blog.csdn.net/m0_37542524/article/details/83754738# Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)


实际手操:

直接贴命令行


[zryTest@master src]$  g++ ReadFileDemo-4.cpp -o Test-4
ReadFileDemo-4.cpp:6:22: fatal error: filesystem: No such file or directory
 #include <filesystem>
                      ^
compilation terminated.
[zryTest@master src]$  g++ ReadFileDemo-4.cpp -o Test-4 -std=c++17
g++: error: unrecognized command line option ‘-std=c++17’
[zryTest@master src]$ ls /usr/bin/gcc* -l
-rwxr-xr-x 2 root root 768608 Sep 30  2020 /usr/bin/gcc
-rwxr-xr-x 1 root root  27088 Sep 30  2020 /usr/bin/gcc-ar
-rwxr-xr-x 1 root root  27088 Sep 30  2020 /usr/bin/gcc-nm
-rwxr-xr-x 1 root root  27088 Sep 30  2020 /usr/bin/gcc-ranlib
[zryTest@master src]$ rpm -qa|grep gcc
gcc-gfortran-4.8.5-44.el7.x86_64
gcc-c++-4.8.5-44.el7.x86_64
libgcc-4.8.5-44.el7.x86_64
gcc-4.8.5-44.el7.x86_64
[zryTest@master src]$ man gcc
[zryTest@master src]$ sudo yum install centos-release-scl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.huaweicloud.com
clickhouse-stable/signature                                                             |  833 B  00:00:00
Retrieving key from https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml.key
clickhouse-stable/signature                                                             | 3.0 kB  00:00:01 !!!
https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for clickhouse-stable
Trying other mirror.
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-3.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-3.el7.centos.noarch
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
 Package                            Arch                Version                      Repository           Size
===============================================================================================================
Installing:
 centos-release-scl                 noarch              2-3.el7.centos               extras               12 k
Installing for dependencies:
 centos-release-scl-rh              noarch              2-3.el7.centos               extras               12 k
Transaction Summary
===============================================================================================================
Install  1 Package (+1 Dependent package)
Total download size: 24 k
Installed size: 39 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): centos-release-scl-2-3.el7.centos.noarch.rpm                                     |  12 kB  00:00:00
(2/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm                                  |  12 kB  00:00:00
---------------------------------------------------------------------------------------------------------------
Total                                                                          110 kB/s |  24 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : centos-release-scl-rh-2-3.el7.centos.noarch                                                 1/2
  Installing : centos-release-scl-2-3.el7.centos.noarch                                                    2/2
  Verifying  : centos-release-scl-2-3.el7.centos.noarch                                                    1/2
  Verifying  : centos-release-scl-rh-2-3.el7.centos.noarch                                                 2/2
Installed:
  centos-release-scl.noarch 0:2-3.el7.centos
Dependency Installed:
  centos-release-scl-rh.noarch 0:2-3.el7.centos
Complete!
[zryTest@master src]$
[zryTest@master src]$
[zryTest@master src]$ sudo yum install devtoolset-8-gcc*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * centos-sclo-rh: mirrors.huaweicloud.com
 * centos-sclo-sclo: mirrors.huaweicloud.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.huaweicloud.com
centos-sclo-rh                                                                          | 3.0 kB  00:00:00
centos-sclo-sclo                                                                        | 3.0 kB  00:00:00
clickhouse-stable/signature                                                             |  833 B  00:00:00
Retrieving key from https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml.key
clickhouse-stable/signature                                                             | 3.0 kB  00:00:01 !!!
https://packages.clickhouse.com/rpm/stable/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for clickhouse-stable
Trying other mirror.
(1/2): centos-sclo-sclo/x86_64/primary_db                                               | 300 kB  00:00:00
(2/2): centos-sclo-rh/x86_64/primary_db                                                 | 3.4 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package devtoolset-8-gcc.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: devtoolset-8-binutils >= 2.22.52.0.1 for package: devtoolset-8-gcc-8.3.1-3.2.el7.x86_64
--> Processing Dependency: devtoolset-8-runtime for package: devtoolset-8-gcc-8.3.1-3.2.el7.x86_64
---> Package devtoolset-8-gcc-c++.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: devtoolset-8-libstdc++-devel = 8.3.1-3.2.el7 for package: devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64
---> Package devtoolset-8-gcc-gdb-plugin.x86_64 0:8.3.1-3.2.el7 will be installed
---> Package devtoolset-8-gcc-gfortran.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: devtoolset-8-libquadmath-devel = 8.3.1-3.2.el7 for package: devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64
--> Processing Dependency: libgfortran5 >= 8.1.1 for package: devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64
---> Package devtoolset-8-gcc-plugin-devel.x86_64 0:8.3.1-3.2.el7 will be installed
--> Processing Dependency: gmp-devel >= 4.1.2-8 for package: devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64
--> Processing Dependency: libmpc-devel >= 0.8.1 for package: devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64
--> Processing Dependency: mpfr-devel >= 2.2.1 for package: devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64
--> Running transaction check
---> Package devtoolset-8-binutils.x86_64 0:2.30-55.el7.2 will be installed
---> Package devtoolset-8-libquadmath-devel.x86_64 0:8.3.1-3.2.el7 will be installed
---> Package devtoolset-8-libstdc++-devel.x86_64 0:8.3.1-3.2.el7 will be installed
---> Package devtoolset-8-runtime.x86_64 0:8.1-1.el7 will be installed
--> Processing Dependency: scl-utils >= 20120927-11 for package: devtoolset-8-runtime-8.1-1.el7.x86_64
---> Package gmp-devel.x86_64 1:6.0.0-15.el7 will be installed
---> Package libgfortran5.x86_64 0:8.3.1-2.1.1.el7 will be installed
---> Package libmpc-devel.x86_64 0:1.0.1-3.el7 will be installed
---> Package mpfr-devel.x86_64 0:3.1.1-4.el7 will be installed
--> Running transaction check
---> Package scl-utils.x86_64 0:20130529-19.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
 Package                                Arch           Version                    Repository              Size
===============================================================================================================
Installing:
 devtoolset-8-gcc                       x86_64         8.3.1-3.2.el7              centos-sclo-rh          30 M
 devtoolset-8-gcc-c++                   x86_64         8.3.1-3.2.el7              centos-sclo-rh          12 M
 devtoolset-8-gcc-gdb-plugin            x86_64         8.3.1-3.2.el7              centos-sclo-rh         123 k
 devtoolset-8-gcc-gfortran              x86_64         8.3.1-3.2.el7              centos-sclo-rh          12 M
 devtoolset-8-gcc-plugin-devel          x86_64         8.3.1-3.2.el7              centos-sclo-rh         1.4 M
Installing for dependencies:
 devtoolset-8-binutils                  x86_64         2.30-55.el7.2              centos-sclo-rh         5.5 M
 devtoolset-8-libquadmath-devel         x86_64         8.3.1-3.2.el7              centos-sclo-rh         155 k
 devtoolset-8-libstdc++-devel           x86_64         8.3.1-3.2.el7              centos-sclo-rh         2.7 M
 devtoolset-8-runtime                   x86_64         8.1-1.el7                  centos-sclo-rh          20 k
 gmp-devel                              x86_64         1:6.0.0-15.el7             base                   181 k
 libgfortran5                           x86_64         8.3.1-2.1.1.el7            base                   796 k
 libmpc-devel                           x86_64         1.0.1-3.el7                base                    32 k
 mpfr-devel                             x86_64         3.1.1-4.el7                base                    68 k
 scl-utils                              x86_64         20130529-19.el7            base                    24 k
Transaction Summary
===============================================================================================================
Install  5 Packages (+9 Dependent packages)
Total download size: 65 M
Installed size: 188 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/centos-sclo-rh/packages/devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
Public key for devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm is not installed
(1/14): devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm                                  | 5.5 MB  00:00:00
(2/14): devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64.rpm                                   |  12 MB  00:00:00
(3/14): devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64.rpm                            | 123 kB  00:00:00
(4/14): devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64.rpm                              |  12 MB  00:00:00
(5/14): devtoolset-8-gcc-8.3.1-3.2.el7.x86_64.rpm                                       |  30 MB  00:00:01
(6/14): devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64.rpm                         | 155 kB  00:00:00
(7/14): devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64.rpm                           | 2.7 MB  00:00:00
(8/14): devtoolset-8-runtime-8.1-1.el7.x86_64.rpm                                       |  20 kB  00:00:00
(9/14): libgfortran5-8.3.1-2.1.1.el7.x86_64.rpm                                         | 796 kB  00:00:00
(10/14): gmp-devel-6.0.0-15.el7.x86_64.rpm                                              | 181 kB  00:00:00
(11/14): libmpc-devel-1.0.1-3.el7.x86_64.rpm                                            |  32 kB  00:00:00
(12/14): mpfr-devel-3.1.1-4.el7.x86_64.rpm                                              |  68 kB  00:00:00
(13/14): scl-utils-20130529-19.el7.x86_64.rpm                                           |  24 kB  00:00:00
(14/14): devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64.rpm                         | 1.4 MB  00:00:00
---------------------------------------------------------------------------------------------------------------
Total                                                                           32 MB/s |  65 MB  00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
Importing GPG key 0xF2EE9D55:
 Userid     : "CentOS SoftwareCollections SIG (https://wiki.centos.org/SpecialInterestGroup/SCLo) <security@centos.org>"
 Fingerprint: c4db d535 b1fb ba14 f8ba 64a8 4eb8 4e71 f2ee 9d55
 Package    : centos-release-scl-rh-2-3.el7.centos.noarch (@extras)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:gmp-devel-6.0.0-15.el7.x86_64                                                            1/14
  Installing : mpfr-devel-3.1.1-4.el7.x86_64                                                              2/14
  Installing : libmpc-devel-1.0.1-3.el7.x86_64                                                            3/14
  Installing : scl-utils-20130529-19.el7.x86_64                                                           4/14
  Installing : devtoolset-8-runtime-8.1-1.el7.x86_64                                                      5/14
  Installing : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64                                          6/14
  Installing : devtoolset-8-binutils-2.30-55.el7.2.x86_64                                                 7/14
  Installing : libgfortran5-8.3.1-2.1.1.el7.x86_64                                                        8/14
  Installing : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64                                                      9/14
  Installing : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64                                       10/14
  Installing : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64                                            11/14
  Installing : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64                                                 12/14
  Installing : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64                                        13/14
  Installing : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64                                          14/14
  Verifying  : libgfortran5-8.3.1-2.1.1.el7.x86_64                                                        1/14
  Verifying  : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64                                                  2/14
  Verifying  : scl-utils-20130529-19.el7.x86_64                                                           3/14
  Verifying  : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64                                          4/14
  Verifying  : devtoolset-8-runtime-8.1-1.el7.x86_64                                                      5/14
  Verifying  : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64                                             6/14
  Verifying  : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64                                                      7/14
  Verifying  : 1:gmp-devel-6.0.0-15.el7.x86_64                                                            8/14
  Verifying  : libmpc-devel-1.0.1-3.el7.x86_64                                                            9/14
  Verifying  : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64                                        10/14
  Verifying  : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64                                       11/14
  Verifying  : mpfr-devel-3.1.1-4.el7.x86_64                                                             12/14
  Verifying  : devtoolset-8-binutils-2.30-55.el7.2.x86_64                                                13/14
  Verifying  : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64                                          14/14
Installed:
  devtoolset-8-gcc.x86_64 0:8.3.1-3.2.el7                  devtoolset-8-gcc-c++.x86_64 0:8.3.1-3.2.el7
  devtoolset-8-gcc-gdb-plugin.x86_64 0:8.3.1-3.2.el7       devtoolset-8-gcc-gfortran.x86_64 0:8.3.1-3.2.el7
  devtoolset-8-gcc-plugin-devel.x86_64 0:8.3.1-3.2.el7
Dependency Installed:
  devtoolset-8-binutils.x86_64 0:2.30-55.el7.2          devtoolset-8-libquadmath-devel.x86_64 0:8.3.1-3.2.el7
  devtoolset-8-libstdc++-devel.x86_64 0:8.3.1-3.2.el7   devtoolset-8-runtime.x86_64 0:8.1-1.el7
  gmp-devel.x86_64 1:6.0.0-15.el7                       libgfortran5.x86_64 0:8.3.1-2.1.1.el7
  libmpc-devel.x86_64 0:1.0.1-3.el7                     mpfr-devel.x86_64 0:3.1.1-4.el7
  scl-utils.x86_64 0:20130529-19.el7
Complete!
[zryTest@master src]$ scl enable devtoolset-8 bash
[zryTest@master src]$ source /opt/rh/devtoolset-8/enable
[zryTest@master src]$ mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv: cannot move ‘/usr/bin/gcc’ to ‘/usr/bin/gcc-4.8.5’: Permission denied
[zryTest@master src]$ ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
ln: failed to create symbolic link ‘/usr/bin/gcc’: File exists
[zryTest@master src]$ su -
Password:
Last login: Tue Mar 21 10:10:14 CST 2023 on pts/1
[root@master ~]# mv /usr/bin/gcc /usr/bin/gcc-4.8.5
[root@master ~]# ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
[root@master ~]# mv /usr/bin/g++ /usr/bin/g++-4.8.5
[root@master ~]# ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
[root@master ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/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 --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
[root@master ~]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/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 --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
[root@master ~]# c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../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-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
[root@master ~]# mv /usr/bin/c++ /usr/bin/c++-4.8.5
[root@master ~]# ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++
[root@master ~]# c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/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 --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
[root@master ~]#


可以看到,这里的 gcc、 g++、c++、的版本已经到了8.3.1 2019版本了。

接下来再次通过 man g++ 查看 -std的介绍文档依旧 保持不变,

尝试更新man 手册 [[Linux 更新man说明手册,man中文手册]]


再次使用g++ 编译已经解决库找不到的问题了。 并且 -std=c++17已经可以识别出来了。


服务器高级架构体系:https://xxetb.xet.tech/s/4DEnTI

目录
相关文章
|
23天前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
135 64
|
24天前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
159 63
|
30天前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
176 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
10天前
|
Kubernetes Linux 测试技术
|
20天前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
27天前
|
Kubernetes Linux 开发工具
centos7通过kubeadm安装k8s 1.27.1版本
centos7通过kubeadm安装k8s 1.27.1版本
|
26天前
|
安全 Linux 编译器
Centos 7.9如何使用源码编译安装curl最新版本
通过上述步骤,您就能在CentOS 7.9上成功地从源代码编译并安装curl的最新版本。这种方法不仅提供了灵活性,允许您定制编译选项,还确保了软件的最新功能和安全更新得到应用。
34 1
|
2月前
|
Linux 编译器 开发工具
快速在linux上配置python3.x的环境以及可能报错的解决方案(python其它版本可同样方式安装)
这篇文章介绍了在Linux系统上配置Python 3.x环境的步骤,包括安装系统依赖、下载和解压Python源码、编译安装、修改环境变量,以及常见安装错误的解决方案。
83 1
|
29天前
|
Java Linux Maven
用sdkman在linux上管理多个java版本
本文介绍了如何在Linux上使用SDKMAN来管理多个Java版本,包括安装SDKMAN、验证安装、列出和安装不同版本的JDK、Maven和Gradle,以及如何切换使用不同版本。
27 0
|
分布式计算 资源调度 Hadoop