組込みRubyことmrubyをgithub公式から引っ張ってくる方法です。
相変わらず活発に更新が行われています。
以下の手法で通らないようでしたら、公式ページに飛んだ方が早いかもしれません。
インストール
例の如く、git cloneでおとしてきます。
$ git clone https://github.com/mruby/mruby.git
もしbison*1が入っていない場合はビルド前に導入します。
//debian系 $ sudo apt-get install bison //Mac OS X $ brew install bison
導入先に移動して……make。簡単ですね。
$ cd #{mruby-root}
$ make一通り終わると、次のような出力を得ます。
Build summary:
================================================
Config Name: host
Output Directory: build/host
Binaries: mrbc
Included Gems:
mruby-sprintf - 0.0.0
mruby-print - 0.0.0
mruby-math - 0.0.0
mruby-time - 0.0.0
mruby-struct - 0.0.0
mruby-enum-ext - 0.0.0
mruby-string-ext - 0.0.0
mruby-numeric-ext - 0.0.0
mruby-array-ext - 0.0.0
mruby-hash-ext - 0.0.0
mruby-range-ext - 0.0.0
mruby-proc-ext - 0.0.0
mruby-symbol-ext - 0.0.0
mruby-random - 0.0.0
mruby-object-ext - 0.0.0
mruby-objectspace - 0.0.0
mruby-fiber - 0.0.0
mruby-toplevel-ext - 0.0.0
mruby-bin-mirb - 0.0.0
- Binaries: mirb
mruby-bin-mruby - 0.0.0
- Binaries: mruby
================================================指示通りみていくと
$ ls -1 build/host LEGAL bin lib mrbgems mrblib src tools
てなフォルダが生成されています。
Hello world on C-Lang
折角なので、C言語上でHello worldいってみましょう。
次のコードをコピーして……
#include <stdlib.h> #include <stdio.h> /* Include the mruby header */ #include <mruby.h> #include <mruby/compile.h> int main(void) { mrb_state *mrb = mrb_open(); char code[] = "p 'hello world!'"; printf("Executing Ruby code from C!\n"); mrb_load_string(mrb, code); return 0; }
ヒアドキュメントとcatの合わせ技でちゃちゃっとhello.cを作ります。
$ cd #{mruby-root}
$ cat > hello.c <<EOS
> ##上のコードをコピペ##
> EOS終わったらコンパイルで動作確認です。
$ gcc -Iinclude hello.c build/host/lib/libmruby.a -lm -o hello.out $ ./hello.out Executing Ruby code from C! "hello world!"
次回の記事ではmrubyをC言語プロジェクトに適用する方法を扱います。