我正在尝试构建一个可以在多个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的非关键错误.