ruby版本:ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]
C++代码:
#include
#include
#include
using namespace std;
RUBY_GLOBAL_SETUP;
int main(int argc, char *argv[])
{
ruby_sysinit(&argc, &argv);
RUBY_INIT_STACK;
ruby_init();
ruby_init_loadpath();
[b][color=red]rb_require("test");[/color][/b]
return 0;
}
test.rb文件内容
[color=red]puts FILE[/color]
C++代码编译成功,执行后,错误信息如下:
: [BUG] Segmentation fault
ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]
-- control frame ----------
只要test.rb文件中出现 FILE或__LINE__,就会出错,否则执行成功,不知道这个问题如何解决
[code=""]你还需要在 rb_require("test") 之前,ruby_init_loadpath() 之后添加[/code]
[code="C"]ruby_script("demo"); [/code]
[code=""]"demo" 是启动的文件名。随便填什么都行。
原因: FILE 会追溯所有文件名(虽然这里没用到启动文件名但还是会追溯),而启动文件名没设的话会出错。
[/code]