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

目录
相关文章
|
1月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
2月前
|
运维 监控 安全
CentOS 7系统 OpenSSH和OpenSSL版本升级指南
本文详细介绍如何在CentOS 7系统上升级OpenSSH和OpenSSL至最新稳定版本(OpenSSH 9.6p1和OpenSSL 1.1.1w),解决多个已知安全漏洞(如CVE-2023-51767等)。涵盖环境说明、现存漏洞、升级准备、具体步骤及故障排查,确保服务器安全。建议先在测试环境验证,再应用于生产环境。
200 7
|
2月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
187 13
|
4月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
863 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
4月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
171 1
Linux系统之Centos7安装cockpit图形管理界面
|
4月前
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器
|
2天前
|
编译器 C语言 C++
类和对象的简述(c++篇)
类和对象的简述(c++篇)
|
1月前
|
C++ 芯片
【C++面向对象——类与对象】Computer类(头歌实践教学平台习题)【合集】
声明一个简单的Computer类,含有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,以及两个公有成员函数run、stop。只能在类的内部访问。这是一种数据隐藏的机制,用于保护类的数据不被外部随意修改。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。成员可以在派生类(继承该类的子类)中访问。成员,在类的外部不能直接访问。可以在类的外部直接访问。为了完成本关任务,你需要掌握。
68 19
|
1月前
|
存储 编译器 数据安全/隐私保护
【C++面向对象——类与对象】CPU类(头歌实践教学平台习题)【合集】
声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,以及两个公有成员函数run、stop。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。​ 相关知识 类的声明和使用。 类的声明和对象的声明。 构造函数和析构函数的执行。 一、类的声明和使用 1.类的声明基础 在C++中,类是创建对象的蓝图。类的声明定义了类的成员,包括数据成员(变量)和成员函数(方法)。一个简单的类声明示例如下: classMyClass{ public: int
50 13
|
1月前
|
编译器 数据安全/隐私保护 C++
【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
本实验旨在学习类的继承关系、不同继承方式下的访问控制及利用虚基类解决二义性问题。主要内容包括: 1. **类的继承关系基础概念**:介绍继承的定义及声明派生类的语法。 2. **不同继承方式下对基类成员的访问控制**:详细说明`public`、`private`和`protected`继承方式对基类成员的访问权限影响。 3. **利用虚基类解决二义性问题**:解释多继承中可能出现的二义性及其解决方案——虚基类。 实验任务要求从`people`类派生出`student`、`teacher`、`graduate`和`TA`类,添加特定属性并测试这些类的功能。最终通过创建教师和助教实例,验证代码
50 5