Linux 升级的构建机器(Debian),构建don';无法在服务器上工作(CentOS)

Linux 升级的构建机器(Debian),构建don';无法在服务器上工作(CentOS),linux,g++,dependency-management,libstdc++,Linux,G++,Dependency Management,Libstdc++,混合C++/免费Pascal程序,Linux。我曾经在32位Debian机器上构建它,并在64位CentOS 5.3服务器机器上运行它,它工作得很好。现在我已经将Debian box升级到6.0.3(挤压)。下次重建后,程序不再在服务器主机上运行,而是打印以下内容: myapp: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by myapp) myapp: /usr/lib/libstdc++.so.

混合C++/免费Pascal程序,Linux。我曾经在32位Debian机器上构建它,并在64位CentOS 5.3服务器机器上运行它,它工作得很好。现在我已经将Debian box升级到6.0.3(挤压)。下次重建后,程序不再在服务器主机上运行,而是打印以下内容:

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++*
时,我注意到在dev box上
libstdc++.so.6
是指向
libstdc++.so.6.0.13
的符号链接,而在主机上它是指向
libstdc++.so.6.0.8
的符号链接。这可能是罪魁祸首

你能建议一个故障排除策略吗?我应该在dev-box上放置libstdc++的早期版本,并尝试与之链接,还是尝试升级prod-box

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

无需故障排除。你只需要看看这个

我是否应该将libstdc++的早期版本放在dev框中,并尝试与之链接

那不行。您的新GCC将发出在
libstdc++.so.6.0.13
中定义的符号,您针对
libstdc++.so.6.0.8
的链接将失败

或者尝试升级prod box


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

为什么不在新机器上重建它?不能将编译器放在公共web主机上。虽然可以加载所有库并创建使用正确版本的构建,但最简单的过程将是创建相同风格(发行版和32/64位)的开发机器并以版本为生产机器。如果缺少硬件,它可能是现有构建机上的虚拟机。