プログラミングRubyブックからRubyインタプリタを埋め込む方法の例を試しています。しかし、それはまだ動作していません。私はRubyをRVMにインストールしました。C、SIGSEGVにRubyインタプリタを埋め込む
私のソースファイル:https://gist.github.com/1635374
Rubyのバージョン:
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
Rubyのヘッダファイルの場所:
$ locate ruby.h
...
/home/matej/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby.h
/home/matej/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/ruby.h
...
Rubyライブラリの場所:
$ locate libruby.so.1
/home/matej/.rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9
/home/matej/.rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9.1
メイク:
$ make
cc -I/home/matej/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ -I/home/matej/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux/ -g -c -o embed2.o embed2.c
cc -o embed2 embed2.o -shared -L/home/matej/.rvm/rubies/ruby-1.9.2-p290/lib -ldl -lruby1.9
実行プログラム:
$./embed2
SIGSEGV原因
。
どこに問題がありますか教えてください。前もって感謝します。
gdbで実際にクラッシュした場所を調べましたか? – hopia