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

时间:2011-11-04 10:19:10

标签: objective-c c macos cocoa dylib

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

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

我是否需要分别为32位和64位二进制的32位和64位dylib?有什么工作吗?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

  1. 您可以使用64位编译器构建32位二进制文​​件,反之亦然 反之亦然。
  2. 您可以在a上启动时构建和运行64位二进制文​​件     32位内核,反之亦然。
  3. 您无法链接32位版本     反对64位二进制文​​件,反之亦然。