无法在 OSX 上从 64 位进程加载 32 位 dylib,反之亦然?
昨天我遇到了一个问题,我的程序在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,32 位进程需要 32 位库,64 位进程需要 64 位库。没有解决方法。
Yes, you need 32bit libs for 32bit processes, and 64bit libs for 64bit processes. There is no workaround.
反之亦然。
32 位内核,反之亦然。
针对 64 位二进制文件,反之亦然。
versa.
32-bit kernel, and vice versa.
against 64-bit binaries or vice versa.