2

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

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

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

4

2 回答 2

4

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

于 2011-11-04T10:22:11.310 回答
2
  1. 您可以使用 64 位编译器构建 32 位二进制文​​件,反之亦然。
  2. 在 32 位内核上启动时,您可以构建和运行 64 位二进制文​​件,反之亦然。
  3. 您不能将 32 位版本链接到 64 位二进制文​​件,反之亦然。
于 2011-11-04T10:57:09.320 回答