我正在更新一个相当旧的 C 扩展,该扩展绑定到我没有编写的 ruby gem。目前,当我执行将使用 C 扩展的脚本时,我收到此错误:
symbol lookup error: /path/to/lib.so: undefined symbol: rb_str2cstr
在同一个库中也存在问题STR2CSTR
,已通过将其替换为 StringValuePtr 来解决。我最初的想法是用 rb_string_value_ptr 替换 rb_str2cstr,但是当我尝试这样做时,C 扩展将无法构建。我绝不是 C 程序员,也不知道该去哪里。我知道我必须用它的替代品替换 rb_str2cstr,但我似乎无法弄清楚那是什么。