这里有一个相当抽象的问题,因为我不知道从哪里开始自己的调查。
我有一个用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
所以看起来符号确实在库中。那么,为什么绑定会失败呢?
答案 0 :(得分:2)