1

一点背景: 我正在创建一个基于共享库的 QT 应用程序。我必须分发相同的。我有很多 dll 可以共享,并且正在使用依赖 walker 工具。我对我的 QT 应用程序进行了完整的分析,Dependency walker 正确地识别了所有着色库。

现在我的问题: 由于依赖walker知道所有dll的路径,是否有任何选项可以通过要求dependency walker将所有dll复制到一个文件夹左右来制作捆绑包。我在谷歌做了一些研究,没有找到。?

任何人都可以请指导我还是有任何其他工具可以做到这一点?

4

2 回答 2

0

以下是我对这个主题的想法和胡言乱语:

我以前没有听说过,但是依赖项遍历器确实列出了应用程序访问的所有内容,并且其中大量不需要部署。

可能没有那么多依赖项。大多数 windows api 库不应该被复制。

您可能需要安装其中一个 vscred 软件包,例如,如果您使用 MSVS 2010 将其构建为 32 位二进制文​​件,您可能需要在客户端计算机上运行 MSVS C++ Redistributables 2010 x86 安装程序。

但是现在,当您弄清楚如何在新的客户端计算机上访问路径中的所有内容时,请记住以下几点:

了解 Windows 搜索顺序如何提供帮助。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx#search_order_for_desktop_applications

还知道 Qt 如何找到自己的库和插件会有所帮助。

http://qt-project.org/doc/qt-4.8/deployment-windows.html

除此之外,您还需要创建自己的文件夹结构,并复制依赖项。

NSIS 提供安装程序。还有其他安装系统,用于部署您的应用程序。您还可以使用 7zip 制作一个自解压 zip,并为其提供一个位置来转储其内容。

希望有帮助。

于 2013-07-10T22:27:16.840 回答
0

对于 QT 应用程序,您可以使用QT 附带的QT 部署工具 windeployqt,它位于QTDIR/bin/windeployqt. 它会扫描您的 exe 文件并为自包含部署找到 QT 依赖项。

于 2017-05-03T14:11:47.563 回答