Apple OpenSource Objc4-779.1 编译调试配置

本文详细介绍了如何解决在编译objc4-779.1源码时遇到的问题,包括找不到'macosx.internal' SDK的解决方案,设置BaseSDK为macOS,从opensource.apple.com获取并添加缺省文件,调整Header Search Paths,处理文件冲突,以及编译选项的修改。最终成功编译并提供了GitHub链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Objc4-779.1 源码下载地址:https://opensource.apple.com/

target objc & objc-trampolines unable to find sdk 'macosx.internal'?

设置Build Settings BaseSDK ->macOS

说明缺省文件,通过Google 在opensource.apple.com上搜索相应的缺省文件,添加到项目中去 例如 reason.h site:opensource.apple.com

新建文件夹VVVExtraFiles,保留所有缺省文件,添加完相应的文件后,发现还是找不到对应的文件路径,这时需要设置Targets-Build Settings-Header Search Paths :$(SRCROOT)/VVVExtraFiles

缺省文件列表:

  • reason.h
  • dyld_priv.h (去掉bridgeos(3.0))
  • lock_private.h (去掉bridgeos(4.0))
  • base_private.h
  • tsd_private.h
  • cpu_capabilities.h
  • tsd.h
  • pthread_machdep.h (10.8.4 Libc-825.26)
  • CrashReporterClient.h (LIBC_NO_LIBCRASHREPORTERCLIENT 添加到Preprocessor Macros)
  • objc-shared-cache.h
  • _simple.h (libplatform-220/private)
  • Block_private.h
  • restartable.h

dyld_priv.h 添加宏定义

#define DYLD_MACOSX_VERSION_10_11 0x000A0B00
#define DYLD_MACOSX_VERSION_10_12 0x000A0C00
#define DYLD_MACOSX_VERSION_10_13 0x000A0D00
#define DYLD_MACOSX_VERSION_10_14 0x000A0E00

tsd.private.h 与 pthread_machdep.h 方法重定义了,注释掉pthread_machdep.h中的方法

设置Targets-Build Settings Order files debug为:$(SRCROOT)/libobjc.order 

删除Targets-Build Settings Other Link Flags 中的 -lCrashReporterClient

看样子应该是sh脚本编译了 macosx.internal 修改为macosx

终于编译成功了。。。Enjoy

github:https://github.com/DuWen/Objc4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值