dyld:懒惰符号绑定失败:未找到符号 - nm报告符号已找到

时间:2010-07-23 07:05:09

标签: c ruby cmake symbols

这里有一个相当抽象的问题,因为我不知道从哪里开始自己的调查。

我有一个用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

所以看起来符号确实在库中。那么,为什么绑定会失败呢?

1 个答案:

答案 0 :(得分:2)