Web Assembly C++ (2) : QT Web Assembly


本編は主にqt-webassembly環境の構成について
Qt for WebAssemblyは、Qtアプリケーションを構築し、Webページに統合できるプラットフォームプラグインです.クライアントのインストールを必要とせず、サーバ側のリソースの使用を削減
環境
  • ubuntu 18.04.04
  • qtとemsdkバージョンは
  • に対応しています.
    Qt 5.12: 1.38.16 Qt 5.13: 1.38.27 (multithreading: 1.38.30) Qt 5.14: 1.38.27 (see “Emsdk version for Qt 5.14” below) Qt 5.15: 1.39.8 (tentative; 1.38.x/fasctcomp is no longer supported)
    インストール
    emsdkを使用して、特定のemscriptenバージョンをインストールします(例):
    ./emsdk install sdk-fastcomp-1.38.27-64bit or (was) sdk-1.38.16-64bit
    ./emsdk activate --embedded sdk-fastcomp-1.38.27-64bit or (was) sdk-1.38.16-64bit
    

    複数のバージョンのSDKをインストールする必要がある場合があります.この場合、「-embedded」オプションが便利です.SDKディレクトリには、複数のバージョンが競合しないように、すべての構成ファイルとキャッシュファイルが表示されます.SDKバージョンの「64ビット」とは、マスタビットを意味します.
    Qt 5.14のEmsdkバージョンQt 5.14バイナリパッケージはemsdk 1.38である.27生成:バイナリパッケージの使用時にこのバージョンが使用されていることを確認します.
    emsdkから1.39.0からemccコンパイラはasmを通過する.jsはコンパイルを行い,wasmバイトコードを直接生成する.Qt 5.14のサポート範囲は1.39である.xシリーズ.ただし、コンストラクションフラグは従来のコンパイラにカスタマイズするものであり、この場合、中間asmを最小化する.jsの大きさが重要です.
    ソースコードからQtを構築すると、Qtアカウントの「ダウンロード」セクションからQtソースをダウンロードできます.最新バージョンのコードでは、gitリポジトリから直接チェックアウトすることもできます.
    http : //code.qt.io/cgit/qt/qt5.git/
    

    Qtを「wasm-emscripten」プラットフォームのクロスコンパイルバージョンに設定します.これにより、「-static」および「-no-feature-thread」オプションが暗黙的に設定されます.デフォルトではQtサンプルは構築されず、構築サイズと時間を最小化します.「-compile-examples」オプションを渡して、例を有効にします../configure-xplatform wasm-emscripten-nomake例-prefix$PWD/qtbase
    qtクロスコンパイル
    Qtをプラットフォームのクロスコンパイルバージョンwasm-emscriptenに設定
     ~/Qt/5.14.0/Src/configure -xplatform wasm-emscripten -nomake examples -prefix $PWD/qtbase
     
     make module-qtbase module-qtdeclarative [other modules]
    

    other modules:自由選択モジュール
        module-qtbase \
        module-qtsvg \
        module-qtxmlpatterns \
        module-qtjsbackend \
        module-qtdeclarative \
        module-qtscript \
        module-qtmultimedia \
        module-qtactiveqt \
        module-qttools \
        module-qtquick1 \
        module-qtimageformats \
        module-qtgraphicaleffects \
        module-qttranslations \
        module-qtdoc