Fairly abstract question here, as I don't know quite where to start my own investigations.
I have a C package constructed with CMake that produces librpdb.so; I have a Ruby Gem set up for the same library, which produces rpdb.bundle.
When used in Ruby, I get this:
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
When I look into the library, nm reports:
000000000000ea40 T _RPDB_RuntimeStorageController_sharedInstance
So it appears that the symbol is indeed in the library. Why, then, would binding fail?