我想为特定的 Qt 应用程序制作一个简单、极简的自定义跨平台安装程序。安装程序如下所示:
但在一个用例中,要存储的数据长度 > 5GB。我尝试了以下方法:
使用 Qt 安装程序框架
- 不允许离线更新。
- 制作如上图所示的自定义 Qt Quick Controls 2 UI 是不可能的(或者非常困难)
静态编译Qt并嵌入资源
rcc
- 静态编译 Qt 成功
CONFIG += resources_big
在文件中使用.pro
允许两次rcc
工具编译大资源- 适用于小于 2GB 的文件,但不适用于较大的文件。我将它用于 < 2GB 的文件
- 如果 > 2GB,则链接器 (
ld
) 失败并显示...relocation truncated to fit...
- 我按照这里
-mcmodel=medium
的建议添加了标志。它不起作用,也不起作用,也不起作用-mcmodel=large
-Wl,--image-base -Wl,0x100000000
-Wl,--image-base -Wl,0x180000000
静态编译 Qt 并将数据附加到可执行文件的末尾(这似乎是 > 2GB 文件的最佳方法)
- 附加我的 > 5GB zip 压缩测试文件
- 附加 8 个字节,大小以字节为单位
- 在 Linux 上工作
- 适用于没有那么大文件的 Windows(显示此应用程序无法在您的 PC 上运行)
我想要一些关于如何使第三种方法起作用的建议,因为它似乎是 > 2GB 文件的最佳方法。但也欢迎新的和新鲜的想法。
也欢迎使用替代的跨平台安装程序框架来纠正 Qt 缺少的功能。
如果可能的话,我不想参与winapi
。但是一个简短且易于实施的解决方案也将被接受。
顺便说一句,我目前有一台具有 4GB RAM 的 PC。但这不是问题。