相对路径的 dlopen 错误
我试图从另一个 .dylib 文件调用 .dylib 文件。它们位于同一个文件夹中。我这样做:
void* handle = dlopen("./other.dylib", RTLD_LAZY);
但句柄最终为 NULL,并且 dlerror() 表示找不到它。但是,如果我使用绝对路径,它就可以工作。文档说我可以使用相对路径。我确信我的拼写和大小写是正确的。
为什么会出错呢?
I am trying to call a .dylib file from another .dylib file. They are in the same folder. I do this:
void* handle = dlopen("./other.dylib", RTLD_LAZY);
But handle winds up NULL and dlerror() says it can't find it. However, if I use a absolute path, it works. The docs say I can use a relative path. I am sure my spelling and case are correct.
Why does it error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
相对路径是相对于当前工作目录的,而不是相对于第一个 dylib 的位置
A relative path is relative to your current working directory - not to the location of your first dylib