无法在 OSX 上从 64 位进程加载 32 位 dylib,反之亦然?

发布于 2024-12-13 16:03:57 字数 193 浏览 1 评论 0原文

昨天我遇到了一个问题,我的程序在 32 位进程中失败。

我有一个 dylib 编译为 64 位,并且在 64 位应用程序上使用它。但是当我把它转为32位进行测试并尝试加载它时,它不起作用。 dlopen() 返回 NULL?

对于 32 位和 64 位二进制文​​件,我是否需要分别拥有 32 位和 64 位 dylib?有什么解决办法吗?

I came across a problem yesterday where my program failed as 32 bit process.

I had a dylib compiled as 64 bit and I was using it on 64 bit application. But when I turned it to 32 bit for testing and tried to load it, it did not worked. dlopen() returned NULL?

Do I need to have 32 bit and 64 bit dylib for 32 bit and 64 bit binary respectively? Is there any work around?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

执手闯天涯 2024-12-20 16:03:57

是的,32 位进程需要 32 位库,64 位进程需要 64 位库。没有解决方法。

Yes, you need 32bit libs for 32bit processes, and 64bit libs for 64bit processes. There is no workaround.

彩虹直至黑白 2024-12-20 16:03:57
  1. 您可以使用 64 位编译器构建 32 位二进制文​​件,反之亦然
    反之亦然。
  2. 您可以在启动时构建并运行 64 位二进制文​​件
    32 位内核,反之亦然。
  3. 您无法链接 32 位版本
    针对 64 位二进制文​​件,反之亦然。
  1. You can build 32-bit binaries with a 64-bit compiler, and vice
    versa.
  2. You can build and run 64-bit binaries when booted on a
    32-bit kernel, and vice versa.
  3. You can't link 32-bit builds
    against 64-bit binaries or vice versa.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文