ld: object file ???.o was built with invalid arm64e ABI (128)

错误: ld: object file ???.o was built with invalid arm64e ABI (128)
原因: XCode11混合链接XCode12+产生的二进制

经测试有如下规律

  • arm64进程兼容arm64模块
  • arm64e_2进程兼容arm64e_2模块
  • arm64e_0x80000002进程兼容arm64e_2/arm64e_0x80000002模块

XCode11/clang11 arm64e 生成二进制cpu_sub_type=2 (iOS12-13)
XCode12+/clang12+ arm64e 生成二进制cpu_sub_type=0x80000002 (iOS14+)

可以看出cpu_sub_type=2是苹果的一个设计bug,在iOS14后改为0x80000002且兼容旧版的2
同时也可以证明iOS12-13是XCode11-开发的,iOS14+是XCode12+开发的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容