0

特定の Qt アプリケーション用のシンプルで最小限のカスタム クロスプラットフォーム インストーラーを作成したいと考えています。インストーラーは次のようになります。

シンプルなインストーラー UI

しかし、あるユースケースでは、そこに保存するデータの長さが 5GB を超えています。私は次のことを試しました:

  1. Qt インストーラー フレームワークの使用

    • オフライン更新を許可しません。
    • 上記のようなカスタム Qt Quick Controls 2 UI を作成することはできません (または非常に困難です)。
  2. Qtを静的にコンパイルし、リソースを埋め込むrcc

    • Qt の静的コンパイルに成功
    • CONFIG += resources_bigin .profile を使用して、rccツールの 2 パスで大きなリソースをコンパイルできるようにする
    • 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 を超えるファイルの場合に最適な方法と思われます)。

    • > 5 GB の zip 圧縮されたテスト ファイルを追加します
    • バイト単位のサイズで 8 バイトを追加します
    • Linuxで動作
    • それほど大きなファイルがなくても Windows で動作します (このアプリは PC では実行できません) 。

2GB を超えるファイルには 3 番目のアプローチが最適なように思われるため、3 番目のアプローチを機能させる方法についてアドバイスが必要です。しかし、斬新で斬新なアイデアも大歓迎です。

Qt の不足している機能を修正する代替のクロスプラットフォーム インストーラー フレームワークも歓迎します。

winapiできれば関わりたくない。ただし、短くて実装が簡単なソリューションも受け入れられます。

ところで、私は現在 4GB の RAM を搭載した PC を持っています。しかし、これは問題ではありませんでした。

4

0 に答える 0