欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Linux 如何更新 Centos 下的 Gcc 版本以支持 C++17?

最编程 2024-03-28 19:56:17
...
[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 ~]#