1

我有一个程序,我在机器 A 上使用 CMake 编译,但我想在旧机器 B 上运行它。当我这样做时,我得到以下信息:

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./program)
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./program)
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./program)

我已经看到了这个问题,我认为解决我的问题的最佳方法是将较新的版本复制到机器 B。所以我将/usr/lib/libstdc++.so.6(和libstdc++.so.6.0.14)从 A 复制到~/libB 并做了

export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH

然后。开始我的程序时,我现在得到

Floating point exception

我该怎么做才能让它发挥作用?

4

1 回答 1

0

正如您所发现的,您需要在较libstdc++.so.6旧的系统上存在较新的版本,并告诉动态链接器如何找到它。

请参阅如何确保找到动态链接库?在 libstdc++ 常见问题解答和手册中的查找动态或共享库中,了解如何确保找到它的详细信息,有几个选项。LD_LIBRARY_PATH只是其中一种选择。

浮点异常不应与 libstdc++ 相关,您需要使用调试器来查找它的来源并获取更多详细信息。

于 2012-10-17T19:27:03.933 回答