Windows 10 Pro_x64 + Emscripten で WebAssembly を作成してみる

Windows 10 Pro_x64 + Emscripten で WebAssembly を作成してみる

 

WebAssembly の作成を少し試してみたかったんだけど、とりあえず目についた Emscripten から試してみる

 

参考にしたのは以下のサイト

Emscripten の環境設定

コマンド ライン ビルドのパスと環境変数の設定

 

Microsoft Visual C++ Compiler for Python 2.7

より VCForPython27.msi をDLしてインストールする

コンパイルエラーが発生したときは以下が少しは役に立つかもしれない

Windows 10 Pro + python3 + JayDeBeApi + h2DB を試してみる

LLVM Download Page

より LLVM-6.0.0-win64.exe をDL後インストールする

Get the Software

より cmake-3.11.2-win64-x64.msi をDL後インストールする

 

> python -V

Python 2.7.14

※ 3.6.5 ではエラーになることを確認

> node -v

v10.0.0

 

適当なフォルダで

> git clone https://github.com/juj/emsdk.git

> cd emsdk

> C:\"Program Files (x86)\Microsoft Visual Studio 14.0"\VC\vcvarsall.bat

> ./emsdk.bat install --build=Release sdk-incoming-64bit binaryen-master-64bit

以下管理者モードで起動した コマンドプロンプトで実行する

> ./emsdk.bat activate --global --build=Release sdk-incoming-64bit binaryen-master-64bit

Registering active Emscripten environment globally for all users.

Writing .emscripten configuration file to user home directory C:\Users\User_Name/

The Emscripten configuration file C:\Users\User_Name\.emscripten has been rewritten with the following contents:

import os

LLVM_ROOT='C:/Dev/tools/emsdk/clang/fastcomp/build_incoming_vs2015_64/Release/bin'

NODE_JS='C:/Dev/tools/emsdk/node/8.9.1_64bit/bin/node.exe'

PYTHON='C:/Dev/tools/emsdk/python/2.7.13.1_64bit/python-2.7.13.amd64/python.exe'

JAVA='C:/Dev/tools/emsdk/java/8.152_64bit/bin/java.exe'

EMSCRIPTEN_ROOT='C:/Dev/tools/emsdk/emscripten/incoming'

EMSCRIPTEN_NATIVE_OPTIMIZER='C:/Dev/tools/emsdk/emscripten/incoming_vs2015_64bit_optimizer/Release/optimizer.exe'

BINARYEN_ROOT='C:/Dev/tools/emsdk/binaryen/master_vs2015_64bit_binaryen'

SPIDERMONKEY_ENGINE = ''

V8_ENGINE = ''

TEMP_DIR = 'c:/users/User_Name/appdata/local/temp'

COMPILER_ENGINE = NODE_JS

JS_ENGINES = [NODE_JS]

Adding directories to PATH:

PATH += C:\Dev\tools\emsdk

PATH += C:\Dev\tools\emsdk\clang\fastcomp\build_incoming_vs2015_64\Release\bin

PATH += C:\Dev\tools\emsdk\node\8.9.1_64bit\bin

PATH += C:\Dev\tools\emsdk\python\2.7.13.1_64bit\python-2.7.13.amd64

PATH += C:\Dev\tools\emsdk\java\8.152_64bit\bin

PATH += C:\Dev\tools\emsdk\emscripten\incoming

PATH += C:\Dev\tools\emsdk\binaryen\master_vs2015_64bit_binaryen\bin

Setting environment variables:

EMSDK = C:/Dev/tools/emsdk

EM_CONFIG = C:\Users\User_Name\.emscripten

JAVA_HOME = C:\Dev\tools\emsdk\java\8.152_64bit

EMSCRIPTEN = C:\Dev\tools\emsdk\emscripten\incoming

BINARYEN_ROOT = C:\Dev\tools\emsdk\binaryen\master_vs2015_64bit_binaryen

Set the following tools as active:

clang-incoming-64bit

node-8.9.1-64bit

python-2.7.13.1-64bit

java-8.152-64bit

emscripten-incoming-64bit

binaryen-master-64bit

PS C:\Dev\tools\emsdk> java -version

openjdk version "10" 2018-03-20

OpenJDK Runtime Environment 18.3 (build 10+46)

OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)

PS C:\Dev\tools\emsdk>

LTSの最新版がインスロールされるようだ

> type hello.c
#include <stdio.h>

int main(int argc, char ** argv) {
  printf("Hello World\n");
}

> emcc hello.c -s WASM=1 -o hello.html

で作成された hello.html をダブルクリックして 動作することを確認