0

我想为特定的 Qt 应用程序制作一个简单、极简的自定义跨平台安装程序。安装程序如下所示:

简单的安装程序 UI

但在一个用例中,要存储的数据长度 > 5GB。我尝试了以下方法:

  1. 使用 Qt 安装程序框架

    • 不允许离线更新。
    • 制作如上图所示的自定义 Qt Quick Controls 2 UI 是不可能的(或者非常困难)
  2. 静态编译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
  3. 静态编译 Qt 并将数据附加到可执行文件的末尾(这似乎是 > 2GB 文件的最佳方法)

    • 附加我的 > 5GB zip 压缩测试文件
    • 附加 8 个字节,大小以字节为单位
    • 在 Linux 上工作
    • 适用于没有那么大文件的 Windows(显示此应用程序无法在您的 PC 上运行

我想要一些关于如何使第三种方法起作用的建议,因为它似乎是 > 2GB 文件的最佳方法。但也欢迎新的和新鲜的想法。

也欢迎使用替代的跨平台安装程序框架来纠正 Qt 缺少的功能。

如果可能的话,我不想参与winapi。但是一个简短且易于实施的解决方案也将被接受。

顺便说一句,我目前有一台具有 4GB RAM 的 PC。但这不是问题。

4

0 回答 0