找不到dlopen()错误图像

Mic*_*uth 6 dylib dlopen dynamic-library

我有软件首先加载.dylib让我们使用以下命令调用libFirst.dylib:

void* handle = dlopen(path.c_str(), RTLD_LAZY | RTLD_GLOBAL);
Run Code Online (Sandbox Code Playgroud)

稍后在加载的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
Run Code Online (Sandbox Code Playgroud)

我没有得到的是它说没有加载libFirst.dylib但我目前在libFirst.dylib的函数内部,所以这怎么可能呢?

我在DYLD_LIBRARY_PATH中的所有路径也都是正确的.

在此先感谢,我已经坚持了好几天.

Mic*_*uth 4

我最终使用 -install_name 将所有库的安装名称更改为 @rpath/dylibName.dylib,然后在 Xcode 中使用 @loader_path 设置运行路径搜索路径以查找我正在使用的所有 .dylib。