2017年7月15日土曜日

Compiling from C language to WebAssembly on Centos7 2/2

先の投稿にて、VirtualBOX上のCentOS7にWebAssemblyの環境を構築した。
この環境でweb上にある、simple programを実行してみる。
手順的には
1)ソースの作成。
2)コンパイル
3)ブラウザでの確認
となる。

1)ソースの作成
任意のディレクトリを作成して、よくあるHello worldを作成する。

# mkdir helloworld
# cd helloworld
# echo '#include ' > hello.c
# echo 'int main(int argc, char ** argv) {' >> hello.c
# echo 'printf("Hello, world!\n");' >> hello.c
# echo '}' >> hello.c
短いながら、hello.cというソースを作成した。
# cat hello.c
#include 
int main(int argc, char ** argv) {
printf("Hello, world!\n");
}
2)コンパイル 先ほどのhello.cをコンパイルする。 
# emcc hello.c -s WASM=1 -o hello.html
hello.c以外に以下の3ファイルが作成される。
右にファイルサイズを併記しておく。
hello.html 101K
hello.js 95K
hello.wasm 47K

3)ブラウザでの確認 emrunはビルトインサーバがある様なのでこれを利用する。
# emrun --no_browser --port 8080 .
Web server root directory: /root/helloworld
Now listening at http://localhost:8080/
起動した旨のメッセージが表示されている。
この状態で任意のブラウザから閲覧してみる。
当然linux側のfirewall設定とVirtualBOX上のポートフォワードは必要となる。
このサーバはbindの設定など無いようだ。
何処からでも閲覧できるようなので注意。
VirtualBOXのポートフォワードを以下の様に設定した。












Rule2で8888に割り振っている。
Linux側は暫定でfirewalldを停止した。
# systemctl stop firewalld
ブラウザから、http://127.0.0.1:8888へアクセスしたところ、 以下のような表示がされた。










ファイルの一覧が表示される仕様の様だ。
hello.htmlをクリックすると、Hello world!が表示される。














参考 http://webassembly.org/getting-started/developers-guide/

0 件のコメント: