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中的所有路径也都是正确的.
在此先感谢,我已经坚持了好几天.
我最终使用 -install_name 将所有库的安装名称更改为 @rpath/dylibName.dylib,然后在 Xcode 中使用 @loader_path 设置运行路径搜索路径以查找我正在使用的所有 .dylib。
| 归档时间: |
|
| 查看次数: |
9290 次 |
| 最近记录: |