我有一个红宝石宝石,我用ruby 1.9开发,它有效。但是,对于ruby 1.8,当我尝试运行它时会说这个:
dyld: lazy symbol binding failed: Symbol not found: _RBIGNUM_SIGN
Referenced from: /Users/Adrian/Desktop/num_to_bytes/ext/num_to_bytes/num_to_bytes.bundle
Expected in: flat namespace
dyld: Symbol not found: _RBIGNUM_SIGN
Referenced from: /Users/Adrian/Desktop/num_to_bytes/ext/num_to_bytes/num_to_bytes.bundle
Expected in: flat namespace
Trace/BPT trap
如果我注释掉使用RBIGNUM_SIGN
的行,则会抱怨其他功能,例如rb_big_modulo
。有些事情可行,例如NUM2LONG
。以下是我尝试过的一些事情:
RBIGNUM_SIGN
已定义。但是在我试过的所有版本的红宝石中,都没有。extern VALUE rb_big_modulo(VALUE x);
之类的内容无济于事。apt-get
ted ruby,尝试安装gem,但它也不起作用。have_library 'ruby', 'rb_big_modulo'
放在我的extconf.rb中无效。正如你可能看到的那样,我正在绝望(经过几周的尝试!)。那么,我怎样才能让它发挥作用呢?
答案 0 :(得分:0)
你可以尝试要求backports宝石。这为旧的ruby解释器提供了一些新的ruby版本的功能。
答案 1 :(得分:0)
RBIGNUM_SIGN
,请在源代码中再次定义。rb_big_modulo(x, y)
,请使用rb_funcall(x, '%', 1, y)
。