我应该链接哪个Linux发行版以获得最佳二进制兼容性?

时间:2010-08-23 20:55:15

标签: linux linker binary-compatibility

我想知道哪个Linux发行版最好(即引入最少的依赖项)在链接一个二进制文件时应尽可能多地对共享库进行分发。

我在Ubuntu上做过,但是依赖列表是可怕的。 SDL引入了PulseAudio和诸如此类的东西。我的下一个猜测是使用Debian lenny - 你认为什么是最好的发行版?

4 个答案:

答案 0 :(得分:3)

如果您不想使用安装脚本发布源代码并在目标系统上编译它,那么提供静态链接的所有内容或发送您自己的文件并使用LD_LIBRARY_PATHLD_PRELOAD环境变量在用于启动可执行文件的脚本中。 (关于它是如何完成的一个例子可以在mozilla firefox包装中看到)

同样适用法律问题:绝不使用GPL代码。并且永远不要静态地链接LGPL代码(以及其他问题)。

任何其他解决方案都会给好运或坏运留下太多空间,除了挫折之外什么都不会产生。

答案 1 :(得分:1)

如果我没记错的话,在一个有脉冲音频作为SDL依赖的发行版上链接SDL并不意味着你的程序必须始终与每个发行版的pulseaudio相关联。你实际上不必在编译行上加-lpulseaudio,对吗?我的Ubuntu框上的sdl-config --libs没有列出它。

答案 2 :(得分:1)

为Linux生成软件的正确方法是将每个版本的一个源代码tarball放在您网站上的稳定位置,让分发处理其他所有内容。不要试图自己生成二进制文件。你将免于无休止的悲伤。

答案 3 :(得分:0)

如果您查看QT文档,http://doc.trolltech.com/4.6/deployment-x11.html部分“创建应用程序包”,他们建议创建一个类似Mac的软件包,并使用shell脚本启动它。

你可以做同样的事情;你将不得不创建你需要的库,并将它们包含在你的包中,这将使它变得更大。至少这应该鼓励你只链接到你需要的库:)