Linux - 如何修复可执行映像中的共享库链接?

时间:2011-12-20 07:42:55

标签: linux

民间,

我创建了一个基于Linux的可执行文件。我想设置它,以便用户可以简单地下载和使用。只要用户拥有x86版本的Ubuntu 11.xx,他们就应该能够运行该应用程序。

我想弄清楚的问题是如何处理共享库。例如,我的可执行文件可能需要libxxx.so.23,但用户可能有libxxx.so.22。对于我正在使用的功能,该应用程序可以使用任何版本的sofile。

查看类似的帖子,建议是在两个版本之间创建一个新的符号链接。

问题在于我不能指望用户坐下来为所有依赖项创建符号链接。

必须有一种更好的方法来创建一个可以进行大规模分发的简单可执行文件。显然,通过apt-get下载的软件包似乎会自动处理这个问题。

感谢您的帮助。

此致 彼得

2 个答案:

答案 0 :(得分:2)

静态编译你的包,所以它不依赖于任何特定的.so文件

apt和类似的基于二进制的包管理器中的

包通常依赖于lib的确切版本,因此,例如,nmap-2.2.3取决于libpcap-1.1.2,因此它始终链接到相同的{{1} }}

答案 1 :(得分:0)

我建议为您的应用程序创建静态构建。      在创建构建时链接libxxx.a(静态库)。

 Or you can create the .deb ( for ubuntu and debian ) package. 
 It will resolve the library  dependencies. 

通过 SIVA K