macos - 在 OS X 上构建通用二进制文件 - 什么是 ppc 切片?

标签 macos universal-binary

我正在为 OS X 构建一个通用二进制文件。我通过调用 ld 的 QT 来完成此操作。

ld 在构建 ppc 架构时抛出错误:

in ../MyPathToLib/libcrypto.a, file is universal but not does contain a(n) ppc slice for architecture ppc

这真的很奇怪,因为当我在 libcrypto.a 上调用 lipo -detailed info 时,我得到以下输出:

lipo libcrypto.a -detailed_info
Fat header in: libcrypto.a
fat_magic 0xcafebabe
nfat_arch 3
architecture ppc
    cputype CPU_TYPE_POWERPC
    cpusubtype CPU_SUBTYPE_POWERPC_ALL
    offset 68
    size 246
    align 2^0 (1)
architecture x86_64
    cputype CPU_TYPE_X86_64
    cpusubtype CPU_SUBTYPE_X86_64_ALL
    offset 316
    size 3251896
    align 2^2 (4)
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    offset 3252212
    size 2556576
    align 2^2 (4)

奇怪的是,如果我使用 arch x86 构建,一切都会构建得很好。我在 lipo 中看到 i386 和 ppc 都在那里,但显然它只喜欢 i386。我自己构建了 libcrypto.a 库,方法是构建 OpenSSL 三次并将它们与 lipo 拼接在一起。

有谁知道它如何通用,有一个 ppc 部分,但不包含 ppc 切片(无论是什么)?

最佳答案

我猜您没有正确创建通用libcrypto.a。 lipo 的输出表明 ppc 切片的大小仅为 246 字节,而 i386/x86_64 切片每个有 2~3 兆字节。我猜您输入 lipo 的 libcrypto.a 的 ppc 版本有缺陷。

关于macos - 在 OS X 上构建通用二进制文件 - 什么是 ppc 切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480341/

相关文章:

objective-c - 如何在 NSMenuItem 中绘制内联样式标签(或按钮)

macos - Mac OS X 上的焦点跟随鼠标(加上自动抬起)

macos - OSX架构相关

iphone - 为 iPad 启用 UIiStatusBar,在 Universal iOS 应用中为 iPhone 禁用

iphone - 通用二进制文件不是对设备内存的巨大浪费吗?

macos - 在 macOS kdb+/q 中编译 qml(CFLAG?)

python - 如何使用 conda 升级到 Python 3.6?

iphone - 一个 XCode 项目,两个目标,两个应用程序 (iPhone/iPad),不是通用应用程序

iphone - 如何为armv6、armv7和i386编译静态库(fat)