0

混合 C++/Free Pascal 程序,Linux。我曾经在 32 位 Debian 机器上构建它并在 64 位 CentOS 5.3 服务器机器上运行它,它运行良好。现在我已经将我的 Debian 盒子升级到了 6.0.3(Squeeze)。下一次重建后,程序不再在服务器主机上运行,​​而是打印以下内容:

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

现在,当我运行 时ls -l /usr/lib/libstdc++*,我注意到在开发盒上libstdc++.so.6是一个符号链接到libstdc++.so.6.0.13,而在主机上它是一个符号链接到 libstdc++.so.6.0.8. 那可能是罪魁祸首。

你能建议一个故障排除策略吗?我应该以某种方式将早期版本的 libstdc++ 放在开发盒上并尝试链接它,还是尝试升级产品盒?

4

1 回答 1

0

你能建议一个故障排除策略吗?

无需故障排除。你只需要阅读这个答案

我是否应该以某种方式将早期版本的 libstdc++ 放在开发盒上并尝试链接它,

那是行不通的。您的新 GCC 将发出 中定义的符号libstdc++.so.6.0.13,并且您的链接libstdc++.so.6.0.8将失败。

或尝试升级产品盒?

如果可以,那可能是最简单的选择。

于 2012-05-20T23:31:27.710 回答