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

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

被折叠的 条评论
为什么被折叠?



