LoginSignup
2
0

More than 3 years have passed since last update.

QtWebAssemblyの導入方法(2020年版)

Last updated at Posted at 2020-12-22

おはようございます、Qt Advent Calendar 2020の 23日目の記事です。

去年技術書展で購入した本でQtWebAssemblyに興味を持ったのですが、まだまだ開発中の機能でQtのバージョンによって導入方法が違ったりしていたので、今回は現在最新のQtバージョンでQtWebAssemblyを導入してみようと思います。
この手順はWindows10での導入方法です。

emsdkのインストール

WebAssemblyのコンパイラであるemsdkをインストールします。
これには以下のソフトウェアが必要なので、入っていない場合は先にインストールしてください。

  • Python2.7.12以上
  • Gitクライアント

コマンドプロンプトを立ち上げて下記を入力し、emsdkをインストールします。

git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
emsdk.bat install 1.39.8
emsdk.bat activate --embedded 1.39.8

インストール後emsdkフォルダに.emscriptenファイルが出来るので、emsdk_path の部分をインストールした場所のパスに書き換えます。
下記はC:\emsdkにインストールした時の例です。

import os
emsdk_path = os.path.dirname(os.environ.get('EM_CONFIG')).replace('\\', '/')
NODE_JS = 'C:/emsdk/node/12.18.1_64bit/bin/node.exe'
PYTHON = 'C:/emsdk/python/3.7.4-pywin32_64bit/python.exe'
JAVA = 'C:/emsdk/java/8.152_64bit/bin/java.exe'
LLVM_ROOT = 'C:/emsdk/upstream/bin'
BINARYEN_ROOT = 'C:/emsdk/upstream'
EMSCRIPTEN_ROOT = 'C:/emsdk/upstream/emscripten'
TEMP_DIR = 'C:/emsdk/tmp'
COMPILER_ENGINE = NODE_JS
JS_ENGINES = [NODE_JS]

ホームディレクトリ(C:\Users\ユーザー名)に.emscriptenをコピーします。

※このファイルの書き換えとコピーという手順はQtのドキュメントにはありません。
Qtでコンパイラに自動でEmsctipten Compilerを追加するために手順を追加しましたが、もっとスマートな解決方法がありそうです…もしご存じの方がいればコメントして頂きたいです…!

sedのインストール

以下のサイトからsed-4.2.1-setup.exeをダウンロードし、全てデフォルトでインストールします。
https://sourceforge.net/projects/gnuwin32/files/sed/4.2.1/?sort=filename&sortdir=asc

Qtのインストール

オンラインインストーラーで以下のコンポーネントをインストールします。
Qt
└Qt5.15.0
 └WebAssembly

Developer and Designer Tools
└MinGW 8.1.0 64-bit

QtCreator WebAssemblyプラグイン有効化

[ヘルプ]の[プラグインについて]をクリックしてインストール済みプラグインウィンドウを開きます。
[Device Support]->[WebAssembly]を有効化し、QtCreatorを再起動します。

QtCreator Kit設定

[ツール]の[オプション]をクリックします。
コンパイラに自動でEmsctipten Compilerが追加されています。

Qtバージョンに自動でQt5.15.0WebAssemblyが追加されています。

Kitsに自動でQt5.15.0WebAssemblyが追加されています。

これでQtWebAssemblyのビルドができるようになります。

参考

https://doc.qt.io/qtcreator/creator-setup-webassembly.html
https://wiki.qt.io/Qt_for_WebAssembly
https://doc.qt.io/qt-5/wasm.html

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0