emscriptenをインストールしてwebassemblyを実行するまで
環境
pythonのインストール
pacman -S mingw-w64-x86_64-python
でインストールできる。次に
python
を叩くとWindows Storeが開くと思うので、環境変数の順番を入れ替えて直す。
emscriptenのインストール
コマンドは公式サイト1に書いてある。まずmsys2で
cd <任意のディレクトリ> git clone https://github.com/emscripten-core/emsdk.git
によりemscriptenをダウンロードする。次にcmd.exeで
cd <任意のディレクトリ>/emsdk emsdk install latest emsdk activate latest emsdk_env.bat
を実行する。しかし4行目のemsdk_env.bat
を実行しても環境変数が追加されなかった。なので追加したとされる(されてない)パス
<任意のディレクトリ>\emsdk <任意のディレクトリ>\upstream\emscripten <任意のディレクトリ>\emsdk\node\14.18.2_64bit\bin
を追加する。14.18.2
は適当に書き換える。
webassemblyにコンパイルして実行
適当にソース書いて
em++ -s WASM=1 -o <任意の名前>.html <ソース>.cpp
でコンパイルした。実行ファイル(みたいなやつ)は.html
になるが、開いてもCORSのエラーで動かない。
そこでAtomをインストールしてatom-live-serverを入れて.html
があるディレクトリでサーバを起動し実行した。
コンパイルのオプション2
-s WASM=1
は必須-o *.html
はwebassemblyを呼び出すコードの記述を省略するなら必須- その他、clangで動くオプションはそのまま使える?例:
-std=c++20
,-Wall
-std=c++20
については、つけないとコンパイルエラーになるコードで確認した
em++ -vの結果
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.10 (c3fe57af0504fe24fc4ba697feb8c204f3c80022) clang version 15.0.0 (https://github.com/llvm/llvm-project 8bc29d14273b05b05d5a56e34c07948dc2c770d3) Target: wasm32-unknown-emscripten Thread model: posix InstalledDir: <任意のディレクトリ>\emsdk\upstream\bin