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

目录
相关文章
|
4月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
823 16
|
5月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
407 25
|
3月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
136 0
|
6月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
656 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
5月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
203 10
|
7月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
696 25
|
Linux C++
C++ 调用Linux系统命令
一个简单的C++程序,Test函数用来测试调用Linux的系统命令ls -l #include #include #include #include #include #include using namespace std; const i...
2280 0
|
7月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
3月前
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
85 0
|
3月前
|
存储 编译器 程序员
c++的类(附含explicit关键字,友元,内部类)
本文介绍了C++中类的核心概念与用法,涵盖封装、继承、多态三大特性。重点讲解了类的定义(`class`与`struct`)、访问限定符(`private`、`public`、`protected`)、类的作用域及成员函数的声明与定义分离。同时深入探讨了类的大小计算、`this`指针、默认成员函数(构造函数、析构函数、拷贝构造、赋值重载)以及运算符重载等内容。 文章还详细分析了`explicit`关键字的作用、静态成员(变量与函数)、友元(友元函数与友元类)的概念及其使用场景,并简要介绍了内部类的特性。
166 0