首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于GNU/Linux的Depends.exe

基于GNU/Linux的Depends.exe
EN

Stack Overflow用户
提问于 2010-07-27 09:32:11
回答 4查看 3.7K关注 0票数 6

我需要为GNU/Linux分发一个二进制文件...

在Windows上,我可以运行一个名为"depends.exe“的实用程序,它将验证文件的所有依赖项,这样我就能够知道文件附带了什么,我如何在GNU/Linux上做同样的事情?

澄清:我的意思不是按字面意思分发它(除非它是一些永远不会产生问题的库,比如...libThatOnlyMySoftwareUseVersion0.00042895.08421thatnoonehas Kinda喜欢认为用户需要...)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-27 09:47:06

您要在Linux上查找的实用程序名为ldd。但是,请帮用户一个忙,不要考虑随程序一起分发库。要求您的用户通过适当的渠道安装必备组件。或者,更好的是,使用适当的安装系统(如RPM、apt或portage )打包您的软件(我假设您不能使用源代码分发和autotools);这样做允许包管理系统通过拉入任何所需的库来自动解决依赖关系。

使用ad-hoc方案分发库的版本只会给最终用户带来问题(这类似于Windows上的DLL地狱)。它们可能以冲突、崩溃和可能的安全漏洞而告终。

您可以使用ldd找出您的二进制文件依赖于什么库,以便您可以在制作包时设置适当的依赖项(一些打包程序,如RPM,实际上会为您做这件事)。

票数 10
EN

Stack Overflow用户

发布于 2010-07-27 09:37:16

在linux上,您可以尝试ldd。

票数 1
EN

Stack Overflow用户

发布于 2010-07-27 09:43:05

通常,您将为特定的linux发行版构建一个linux二进制文件,只需提供您自己的二进制文件,并要求用户安装其他部分。如果你使用的是使用rpm包的系统,你想要阅读关于如何构建rpm的知识;如果你使用的是Debian变体,那么你想看看apt二进制包是如何构建的。

如果您想手动检查二进制文件所链接的库,那么:

代码语言:javascript
复制
    ldd /whereever/is/your/binary

将为您提供动态链接二进制文件的链接库列表。但您不想分发其中的大多数,因为这就像尝试重新分发system32.dll或windows.dll一样糟糕的想法:^)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3340170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档