【发布时间】:2011-03-19 23:05:42
【问题描述】:
这里是一个相当抽象的问题,因为我不知道从哪里开始我自己的调查。
我有一个用 CMake 构建的 C 包,它生成 librpdb.so;我为同一个库设置了一个 Ruby Gem,它生成 rpdb.bundle。
在 Ruby 中使用时,我得到这个:
dyld: lazy symbol binding failed: Symbol not found: _RPDB_RuntimeStorageController_sharedInstance
Referenced from: /usr/local/lib/ruby/gems/1.9.1/gems/rpdb-0.1.0/lib/rpdb/rpdb.bundle
Expected in: flat namespace
当我查看库时,nm 报告:
000000000000ea40 T _RPDB_RuntimeStorageController_sharedInstance
所以看起来这个符号确实在库中。那么,为什么绑定会失败呢?
【问题讨论】: