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

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

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

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