Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试使用新的libstdc++;在旧机器上运行会导致错误_C++_Version_Libstdc++ - Fatal编程技术网

C++ 尝试使用新的libstdc++;在旧机器上运行会导致错误

C++ 尝试使用新的libstdc++;在旧机器上运行会导致错误,c++,version,libstdc++,C++,Version,Libstdc++,我有一个在机器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: vers

我有一个在机器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复制到
~/lib
,并在B上完成了

export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH
后来。当开始我的程序时,我现在得到

Floating point exception

我该怎么做才能使它工作?

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

有关如何确保找到它的详细信息,请参阅libstdc++常见问题解答和手册中的部分,以及几个选项
LD_LIBRARY_PATH
只是选项之一


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

我知道这很糟糕,不是您想要听到的,但是如果您需要在较旧的glibc/libstdc++上运行代码,请在需要的最旧版本的系统上编译代码。旧的库和新的编译器不兼容,在Linux上替换或取代libc/libstdc++通常会在你最意想不到的时候刺伤你的背部。