/usr/lib/libstdc++.so.6:未find版本`GLIBCXX_3.4.15'

我如何在Ubuntu中获得GLIBCXX_3.4.15? 我无法运行一些我正在编译的程序。

当我这样做时:

strings /usr/lib/libstdc++.so.6 | grep GLIBC 

我得到:

 GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.4 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH 

感谢您的帮助!

我从源代码编译gcc 4.6,显然

 sudo make install 

没有抓住这个。 我挖来,发现

 gcc/trunk/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.15 

我将它复制到/ usr / lib中,然后redirect到libstdc ++。so.6指向新的,现在一切正常。

我试图让clang工作(这也需要6.0.15),而且我发现它被安装在/usr/local/lib/libstdc++.so.6.0.15 。 它安装在那里,当我安装石墨(实验gcc版本)。

如果您需要访问该位置的库,则需要将LD_LIBRARY_PATH定义为:

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64

做完这些之后,我才得以开始工作。 希望对某人有帮助。

过去,我一直在回避这个问题,只要在链接我的可执行文件时简单地将libstdc ++静态链接到发送给g ++的参数:

 -static-libstdc++ 

如果静态链接库是一个选项,这可能是最快的解决方法。

当我尝试使用matlab eng从c代码中调用m函数时遇到这个问题。 这与命令mex -f .. ..发生

我的解决scheme

 strings /usr/lib/i386-<tab>/libstdc++.so.6 | grep GLIBC 

我发现它包含了3.4.15

所以我的系统有最新的库。

问题来自matlab本身,它从{MATLAB}/bin调用自己的libstdc ++。so.6

所以,只需更新它与更新的系统库。

对于这个错误,我从其他服务器复制了最新的libstdc ++。so.6.0.17,并删除了软链接并重新创build。

1.将libstdc ++。so.6.0.15或最新版本从其他服务器复制到受影响的系统。
在我的情况下,SUSE linux 11 SP3有最新的。
2. rm libstdc ++。so.6
3. ln -s libstdc ++。so.6.0.17 libstdc ++。so.6(在/ usr / lib64目录下)。

的nJoy

gcc版本4.8.1,错误如下:

/ root / bllvm / build / Release + Asserts / bin / llvm-tblgen:/usr/lib64/libstdc++.so.6:找不到版本'GLIBCXX_3.4.15'(必需/ root / bllvm / build / Release + Asserts /箱/ LLVM-tblgen)

我在我编写gcc 4.8.1的地方find了libstdc ++。so.6.0.18

然后我喜欢这个

 cp ~/objdir/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18 /usr/lib64/ rm /usr/lib64/libstdc++.so.6 ln -s libstdc++.so.6.0.18 libstdc++.so.6 

问题解决了。

我刚刚遇到类似的问题,build设LLVM 3.7版本。 首先检查你的系统是否安装了所需的库:

 $locate libstdc++.so.6.* 

然后将find的位置添加到$ LD_LIBRARY_PATH环境variables中。

我有同样的错误。 这是如何为我工作的:

  • 清理当前安装的gcc下的项目
  • 重新编译它

完美的工作!

我已经从RPM( libstdc ++的RPM)中提取它们,然后:

 export LD_LIBRARY_PATH=. 

将系统设置为search当前目录中的库。 然后刚刚执行我的程序。 但在我的情况下,我收到了一个我需要的可执行文件,这不是一个系统范围的变化。

有时你不控制目标机器(例如,你的库需要在locking的企业系统上运行)。 在这种情况下,您将需要使用与其GLIBCXX版本相对应的GCC版本来重新编译您的代码。 在这种情况下,您可以执行以下操作:

  1. 查看目标机器支持的最新版本的GLIBCXX: strings /usr/lib/libstdc++.so.6 | grep GLIBC strings /usr/lib/libstdc++.so.6 | grep GLIBC …说的版本是3.4.19
  2. 使用https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.htmlfind相应的GCC版本。; 在我们的例子中,这是[4.8.3, 4.9.0)

我有一个类似的问题,我已经通过将libstdc++静态链接到正在编译的程序中解决了这个问题,如下所示:

 $ LIBS=-lstdc++ ./configure ... etc. 

而不是通常的

 $ ./configure ... etc. 

这个解决scheme在运行时加载共享库可能会有问题,但是我没有深入研究这个问题,以至于无法评论。

与gcc版本4.8.1(GCC)和libstdc ++。so.6.0.18一样。 不得不在我的Ubuntu机器上复制/ usr / lib / x86_64-linux-gnu。

我有同样的问题之前,并修复,这些步骤可以find这个修复错误“GLIBCXX_3.4.15”在MATLAB

GLIBCXX_3.4.14错误您需要安装更新版本的GCC。 http://pkgs.org/download/libstdc++.so.6转到:;

http://geeksterminal.com/how-to-install-glib-glibc/1392/

并遵循指示。

我有同样的问题,因为我把用户从我自己改为别人:

出于某种原因,之后正常编译我无法执行它(相同的错误信息)。 直接SSH到其他用户帐户的作品。

我安装了多个版本的gcc编译器,需要使用比默认安装更新的版本。 由于我不是我们的Linux系统的系统pipe理员,所以我不能只更改/ usr / lib或上面提到的许多其他build议。 我遇到这个问题,并最终跟踪到设置我的path到32位库目录而不是64位库(lib64)目录。 由于32位目录中的库不兼容,因此系统默认为过时的旧版本。

在我引用的path中使用-L时,给出了有关“跳过不兼容的libstdc ++的警告”,所以当search“lstdc ++”时。 这是帮助我最终解决问题的暗示。