今の所、ブラウザ上でC/C++で作成したプログラムを動かすには以下の2通りだと思います。
Native Client
Google Chromeのみで動作可(モバイルは現時点では不可?)。 普通のC/C++コンパイラのようにバイナリを作成する。サンドボックス化やジャンプ指令など危険な命令を使用させないことで、安全を確保。
Emsclipten
C/C++のプログラムからアセンブラっぽいJavascriptのコードを生成する。どのブラウザでも動作するが、最適化のための特殊なヒントを入れることでFirefoxではより高速に動作可能(asm.js)。
今回はEmscliptenをFedora 20で試してみました。
環境として、git, python, Node.js, clangが必要です。 pythonは最初から入っていると思うので、以下のようにgit, Node.js, clangをインストールします。
$ sudo yum install git nodejs clang
Fedora 19からNode.jsが追加されています。Fedora 18以前の場合は、Node.jsは以下のようにインストールします。
$ sudo yum --enablerepo=updates-testing install nodejs
次に、emscriptenのコードをGithubから持ってきます。
$ git clone https://github.com/kripken/emscripten.git
いつものように、Hello Worldのプログラムを作成して、以下のようにコンパイルします。emccがコマンドとなっています。C++の場合はem++です。
$ emscripten/emcc -o hello.html hello.c
hello.htmlができていると思うので、Firefoxで確認してみます。
$ firefox hello.html
以下のようにhello!が表示されます。
サンプルもいくつか入っているので、以下のように試してみると良いかと思います。
$ emscripten/em++ -o test.html emscripten/tests/hello_world_sdl.cpp
0 件のコメント:
コメントを投稿