最初に.dylibをロードするソフトウェアがあり、次のコマンドを使用してlibFirst.dylibを呼び出すことができます。
void* handle = dlopen(path.c_str(), RTLD_LAZY | RTLD_GLOBAL);
後で、ロードされたlibFirst.dylibから関数内で、同じコマンドを使用して別の.dylibをロードしようとしますが、libSecond.dylibの場合、この共有ライブラリをロードすると、Xcodeコンソールに次の警告が表示されます。
error warning: Ignored unknown object module at 0x129310 with type 0x8a8399
dlerror: dlopen(/path/libSecond.dylib, 9): Library not loaded: libFirst.dylib
Referenced from: /path/libSecond.dylib
Reason: image not found
私が得られないのは、libFirst.dylibがロードされていないということですが、現在libFirst.dylibの関数内にいるので、どうすればよいでしょうか。
DYLD_LIBRARY_PATHのすべてのパスも正しいように見えます。
事前のおかげで、私はこれに何日も立ち往生しています。