如何摆脱'GLIBCXX_3.4.9找不到错误'?

问题描述:

我正在构建一个redistrbutable .so文件。如何摆脱'GLIBCXX_3.4.9找不到错误'?

但是,当我的用户尝试使用它时,他们得到了可怕的/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.9' not found错误。

做一个objdump的,似乎它的这种特殊的符号在我的可执行文件,导致了问题: _ZSt16__ostrea[email protected]@GLIBCXX_3.4.9

我如何告诉我的GCC/G ++编译/链接对旧版本的GLIBXX,使我用户不会得到这个错误?

还是解决这个难题的唯一方法是安装一个单独的具有GLIBXX的旧版本的Linux?

+0

您可以尝试静态链接到C/C++库。 – *foe 2012-04-16 15:35:20

+0

我不能。我的图书馆是封闭的源代码,并且静态链接将gpl许可证应用到它 – pdeva 2012-04-16 15:36:13

+0

确定吗? http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.what – *foe 2012-04-16 15:42:12

您要为 GLIBCXX_3.4.9建设,因此用户也需要有至少GLIBCXX_3.4.9。

+1

我知道。事情是我的大部分用户不。所以我需要知道如何告诉gcc构建一个较低版本。这是否只需要传递额外的参数或者安装整个bew,老版本的linux? – pdeva 2012-04-16 21:23:03