更新为gcc 7.3

时间:2018-04-12 13:33:32

标签: gcc libstdc++

我有一台RHEL服务器(Maipo),我做了安装gcc 7.3(gcc 7.3.0) - 发布于01/25/2018。为了安装gcc,我跟着How to Install gcc 5.3 with yum on CentOS 7.2?

然而,当我安装一些我需要的软件(需要gcc> 4.9)时,我仍然遇到g ++库的问题。我曾经假设编译gcc如图所示应该提供正确的库?但我得到了:

/lib64/libstdc++.so.6: version CXXABI_1.3.9' not found 
/lib64/libstdc++.so.6: versionGLIBCXX_3.4.21' not found

那仍然是g ++的4.8.5版本(libstdc ++。so.6.0.19 - 它是唯一的版本)。我查了一下,但未达到1.3.9和3.4.21。

由于我订阅了RedHat(学术服务器),我无法访问开发人员工具包 - 我可以使用的是gcc 4.8.5。

如果有人知道如何解决这个问题,我将非常感谢你的帮助。如果它听起来很愚蠢而道歉。

2 个答案:

答案 0 :(得分:2)

我也从源代码构建了gcc 7.3。我的示例程序名称是consolehost。

我做了以下事情:

T

然后我调查了那个:

>ldd ./consolehost
./consolehost: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./consolehost)
./consolehost: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./consolehost)
        linux-vdso.so.1 =>  (0x00007ffd79916000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8458cfc000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f84589f4000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f84586f1000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f84584db000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f8458118000)
        /lib64/ld-linux-x86-64.so.2 (0x0000556169234000)

我已经发现我需要更新的版本6.0.19。所以

>ls -ali /lib64/libstdc++.so.6
37631 lrwxrwxrwx. 1 root root 19 мар 17 06:38 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

在那一刻,我需要将libstdc ++。so.6.0.24复制到/ lib64 /并创建新的符号链接。

>sudo find / -name "libstdc++.so.6*"
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/local/lib64/libstdc++.so.6.0.24
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.24-gdb.py
/home/declspec/gcc_build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/home/declspec/gcc_build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/declspec/gcc_build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/home/declspec/gcc_build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/declspec/gcc_build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/home/declspec/gcc_build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

这对我很有帮助。希望对你也有帮助。 This link描述了GLIBCXX,但我不明白它是如何工作的以及它是什么(为什么版本不够)

答案 1 :(得分:-2)

航空工程师在这里。只需升级您的gcc版本9.即可解决所有问题。 https://linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04/ 跟随这个。