1

由于担心某些具有 GPL 许可证的 Qt 库(大多数是 LGPL 可用的),我们删除了项目中大多数未使用的依赖项。运行windeployqt后:

windeployqt.exe --dir setup --compiler-runtime --release --qmldir ..\Qml ..\release\OUREXE.exe

我们得到以下日志:

Direct dependencies: Qt5Core Qt5Gui Qt5Network Qt5Qml Qt5Quick Qt5WebSockets Qt5Widgets    Qt5WebEngineCore Qt5WebEngineWidgets Qt53DCore Qt53DRender Qt53DInput Qt53DExtras
All dependencies   : Qt5Concurrent Qt5Core Qt5Gamepad Qt5Gui Qt5Network Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5WebSockets Qt5Widgets Qt5WinExtras Qt5WebEngineCore Qt5WebEngineWidgets Qt53DCore Qt53DRender Qt53DQuick Qt53DQuickRender Qt53DInput Qt53DAnimation Qt53DExtras Qt5WebChannel
To be deployed     : Qt5Concurrent Qt5Core Qt5Gamepad Qt5Gui Qt5Network Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5SerialPort Qt5Svg Qt5WebSockets Qt5Widgets Qt5WinExtras Qt5WebEngineCore Qt5WebEngineWidgets Qt53DCore Qt53DRender Qt53DQuick Qt53DQuickRender Qt53DInput Qt53DAnimation Qt53DExtras Qt5WebChannel

如您所见,尽管 windeployqt 知道“需要”模块,但它似乎部署了所有 Qt 模块,甚至是未使用的模块。我知道可以使用“--no-”选项手动排除模块,但我希望 windeployqt 自动检测并仅添加直接依赖项。有没有办法通过这个程序将部署的模块限制在最低限度?

4

1 回答 1

0

原来 Qt53DQuick 不是 QtQuick 3D 模块库。Qt 5.12.x 没有 QtQuick 3D 模块,并且 dll 是 Qt3D 模块的一部分。

于 2020-10-28T11:10:07.173 回答