Deployment 如何找出我的程序所依赖的文件?

Deployment 如何找出我的程序所依赖的文件?,deployment,installation,cross-platform,dependencies,packaging,Deployment,Installation,Cross Platform,Dependencies,Packaging,当我为我的程序创建安装程序时,我经常遇到这个问题,因为我遗漏了它所依赖的一些文件 在Windows上: 我经常错过一些安装在我的系统上的DLL。我通常通过单独移动文件夹中的可执行文件来测试我的安装,看看它需要哪个DLL。但它将使用它在我的system32文件夹中找到的DLL——这些DLL可能存在于其他用户的系统中,可能不存在 另一方面,我发现我在十六进制编辑器中打开EXE并搜索模式“.DLL”。但是dll也可以依赖于其他dll 有没有一个(最好是免费的)工具可以告诉我我的程序需要什么DLL?所以

当我为我的程序创建安装程序时,我经常遇到这个问题,因为我遗漏了它所依赖的一些文件

在Windows上:

我经常错过一些安装在我的系统上的DLL。我通常通过单独移动文件夹中的可执行文件来测试我的安装,看看它需要哪个DLL。但它将使用它在我的system32文件夹中找到的DLL——这些DLL可能存在于其他用户的系统中,可能不存在

另一方面,我发现我在十六进制编辑器中打开EXE并搜索模式“.DLL”。但是dll也可以依赖于其他dll

有没有一个(最好是免费的)工具可以告诉我我的程序需要什么DLL?所以我不会错过任何东西

在Linux上:


Linuxes有一个很好的包管理系统。在这些系统中制作安装程序意味着为它们制作一个包。我可以找出我的程序需要什么.so(共享对象)文件。但如何确定哪个包包含该.SO文件,以便在打包时将该包作为依赖项添加

在Windows上,您要查找的是一个名为的工具,它告诉您EXE(或另一个DLL)所依赖的DLL


在Linux上,请参阅解决程序的windows部分。在Linux上,我知道ldd实用程序,但我需要一些东西,可以告诉我哪个包包含这些文件。因为linux软件包需要软件包依赖项而不是文件依赖项。@Calmarius每个软件包系统都有一个工具,可以告诉您哪个软件包包含一个特定的文件,这应该是一个浏览文档的问题
dpkg
例如has
dpkg-S{/path/to/file}