我正在尝试构建一个可以在多个
Linux发行版上运行的二进制包.它目前建立在Ubuntu 10.04上,但它在Ubuntu 8.04上失败,出现以下
错误:
- ./test: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./test)
- ./test: /usr/lib/libstdc.so.6: version `GLIBC_2.11' not found (required by ./test)
解决这个问题的首选方法是什么?有没有办法在新的盒子上安装一个旧的glibc并针对它构建,或者我是否必须在旧的发行版上构建?如果我建立一个旧的glibc,它会在一个新的glibc上工作吗?
或者,是否只有一些方便的编译器标志或软件包我可以安装来解决问题?
我发现的最佳
解决方案是安装运行Debian stable的虚拟机,并在此基础上构建. Debian stable足够老,任何使用它构建的软件包都可以在任何其他基于Debian的发行版上运行,比如Ubuntu.您可能必须
解决已在各种软件的更高版本中修复但未向后移植到Debian stable的非关键
错误.