2014年2月15日土曜日

Fedrora 20 で Emscripten

ブラウザで動くプログラミング言語といえば、Javascriptです。Javascriptも良い言語だとは思いますが、やはりC/C++言語が使いたいこともあります。

今の所、ブラウザ上で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 件のコメント:

コメントを投稿