2016-07-25 34 views
0

我正在编译一个Qt Webkit应用程序,我知道webkitwidgets取决于一些公平的dll,但是每个Webkit应用程序都需要所有这些20 + dll的出货吗?或者我在这里做错了什么。这是运行我的程序所需的每个DLL。Qt应用程序依赖于DLL的(它不需要?)

Too many dll's!

CFF Explorer只显示了这些DLL的10:

enter image description here

的应用涉及到高额〜150MB,因此任何方式,以减少呢?我想静态编译,但不能以这种方式使用webkit。

+1

不想膨胀?不要选择Qt。 – IInspectable

+0

确实,但是因为我选择了Qt来开发这个,所以我现在没有改变,我想我可以在我的应用程序中找到一种不使用WebKit的方式,但是我需要js:/ – matthew9090

+0

@GregHewgill我需要js与web进行交互页面,我正在显示谷歌地图 – matthew9090

回答

0

打开你的Qt命令promp。

mkdir installer 
cd installer 

将您生成的exe文件复制到此文件夹中。并运行:

windeployqt . 

该命令将复制您需要的所有文件。使用DependencyWalker获取更多信息。 警告:一些dll被复制到其他操作系统版本中使用,所以不要删除它,特别是如果你想让你的应用程序兼容从Windows XP到Windows 10.

+0

https://i.gyazo.com/57c1e4e342f506cad9c6e9adf09809de.png我试过这更早和仍然是相同的代价 – matthew9090

+1

我建议将所有文件附加到您的安装程序。从官方文档:http://doc.qt.io/qt-5/windows-deployment.html“他的Windows部署工具旨在自动创建包含依赖项的可部署文件夹的过程(库,QML导入,插件,这个工具可以在QTDIR/bin /目录中找到,这些工具可以在Windows上运行,或者为Windows桌面应用程序创建一个安装树,可以很容易地绑定到安装包中。 windeployqt“。 – mohabouje

+0

还有很多不必要的文件包括在内。例如。如果您使用SQLite,windeployqt将复制所有的sql驱动程序。只保留SQLite驱动程序并删除其余部分。 – ninja

相关问题