mrubyで死ぬC++からmrubyのライブラリを呼ぶのは、evalとかdefine_*とかについては問題ない。独自のirbもどき(というか、parserを使うもの)を作ろうとすると、死ぬ。いうのは、mruby/compile.hの中の構造体には、mrb_boolを使っているものがあるからだ。それの何が問題か?mrb_boolは、mrbconf.hで以下のように定義されている。endifこれがまずいC++処理系がある。いうのは、C++のsizeof(bool)は未定義なのだ。(記憶違いとか、情報が古い可能性があるので、修正歓迎)もし、Cでライブラリを生成すると、構造体には4バイトのフィールドが確保される。C++のプログラムがヘッダのみを参照すると、たまたまその処理系のsizeof(bool)が4でなければ、以降がずれる。1なのでずれたのだった。いうか、見つけるまでえらく時間を潰した。intしたほうが良いかもね(だが、別解もある。C++でライブラリを作れば良いのだ)。09:35)どうもありがとうございます。charかなぁと、なんとなく予想してたけど、外れちゃいました。