qt - Linux 与 Windows 的部署规模
问题描述
我正在部署一个由 Qt 为 Windows 和 Linux 开发的应用程序:
在 Windows 上,我使用内置的 Qtwindeployqt
工具:
windeployqt.exe app.exe --qmldir %NS_REPO_DIR%\qml\
在 Linux 上,我使用的是linuxdeployqt:
linuxdeployqt_EXE="${NS_REPO_DIR}/scripts/linuxdeployqt/linuxdeployqt-7-x86_64.AppImage"
${linuxdeployqt_EXE} app -qmake=${NS_QT_QMAKE_EXE} -qmldir=${NS_REPO_DIR}/qml/
Windows 的部署大小约为 70 MB,Linux 的部署大小约为 300 MB。正常吗?有什么我可能会丢失的吗?
谢谢!
更新
这是我在 Linux 上的部署,其内容按大小排序。Qt 文件看起来不像是debug
模式。此外,还有一个libQt5WebEngineCore.so.5.12.7
111 MB 的大文件:
解决方案
我们不得不在这里责怪所有 GNU/Linux 发行版制造商改变了这么多东西。
与 Windows 不同,Windows 7、8、10 的版本很少,仅此而已。在 GNU/Linux 中,我们有如此多的版本和变体,以至于我们必须“几乎”包含应用程序所需的所有内容,以确保它能够在大多数现有系统变体上运行。
也就是说,您可以手动检查部署在 AppDir 中的文件,并删除那些您知道您的应用程序不需要的文件。
旁注:虽然 linuxdeployqt 仍然可以使用,但还有其他工具可以做得更好。考虑检查https://github.com/linuxdeploy/和https://github.com/AppImageCrafters/appimage-builder
推荐阅读
- android - 如何使用 Runnable 和布尔标志自动/定期滚动 recyclerView
- ios - 导航栏的右键不见了
- django - 使用 Django/Postgres 获取一个计算字段,如果不存在另一个字段值,则获取一个字段值
- ios - 我无法从 NSArray(contentsOfFile: ) 获取数据,它返回 nil
- r - 在包 recharts 中找不到函数 echartR
- c# - 是否可以一次阻止多个设备同步到 Google 云端硬盘?
- javascript - 响应时字体大小不同
- python - 如何使用另一个数组更改数组的内容?
- node.js - 将 XLSX 文件存储在 CosmosDB 中并能够将结果分块发送回的最佳方法?
- c++ - 我将如何在 C++ 中实现处理器调度模拟器?