一点背景: 我正在创建一个基于共享库的QT应用程序。我必须分发相同的。我有很多dll要分享并使用工具依赖性walker。我对我的QT应用程序进行了完整的分析,并且Dependency walker正确地识别了所有的shaed库。
现在我的问题: 由于依赖者walker知道所有dll的路径,是否有任何选项通过要求依赖者walker将所有dll复制到文件夹左右来创建一个bundle。我在谷歌做了一些研究,没有找到任何研究。?
有人可以请我指导相同的内容,还是有其他工具可以做同样的事情?
答案 0 :(得分:0)
以下是我对这个主题的想法和谣言:
之前我没有听说过,但是依赖者walker会列出应用程序访问的所有内容,并且不需要部署大量的内容。
可能没有那么多依赖项。不应复制大多数windows api库。
您可能需要安装其中一个vscred软件包,例如,如果使用MSVS 2010将其构建为32位二进制文件,则可能需要在客户端计算机上运行MSVS C ++ Redistributables 2010 x86安装程序。
但是现在当你想弄清楚如何在新的客户端机器上获取你在路径中拥有的所有东西时,请注意以下事项:
了解Windows搜索顺序如何帮助。
也知道Qt如何找到自己的库和插件有帮助。
http://qt-project.org/doc/qt-4.8/deployment-windows.html
除此之外,您还需要创建自己的文件夹结构,并复制依赖项。
NSIS做安装人员。还有其他安装系统,用于部署您的应用程序。您也可以使用7zip制作自解压zip,并为其提供转储其内容的位置。
希望有所帮助。
答案 1 :(得分:0)
对于QT应用程序,您可以使用QT附带的QT Deploy Tool windeployqt
并位于QTDIR/bin/windeployqt
。它会扫描您的exe文件,并找到自我部署的QT依赖性。