相对路径的 dlopen 错误

发布于 2024-10-29 21:31:33 字数 221 浏览 1 评论 0原文

我试图从另一个 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不回头走下去 2024-11-05 21:31:33

相对路径是相对于当前工作目录的,而不是相对于第一个 dylib 的位置

A relative path is relative to your current working directory - not to the location of your first dylib

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文