xcode - 由于链接错误 __antimain 和 __realmain 未加载内核扩展
问题描述
我有一个使用 Xcode 9.4.1 编译的内核扩展(kext),它运行良好。因此,我能够在 HighSierra 机器上禁用 SIP 的情况下加载它。现在我更新到 Mojave 和 Xcode。所以我用 Xcode 10 重新编译了它,效果很好。但是,当我像以前一样加载 kext 时kextutuil
,但在 Mojave(禁用 SIP)上,它由于链接错误而失败。我收到以下错误:
(kernel) Allocated link buffer for kext org.mydriver.kext at 0xffffff7f9753b000 (81920 bytes).
(kernel) kxld[org.mydriver.kext]: The following symbols are unresolved for this kext:
(kernel) kxld[org.mydriver.kext]: __antimain
(kernel) kxld[org.mydriver.kext]: __realmain
(kernel) Can't load kext org.mydriver.kext - link failed.
(kernel) Failed to load executable for kext org.mydriver.kext.
(kernel) Kext org.mydriver.kext failed to load (0xdc008016).
(kernel) Failed to load kext org.mydriver.kext (error 0xdc008016).
(kernel) Kext org.mydriver.kext removing all personalities naming it from the IOCatalogue.
Kernel error handling kext request - (libkern/kext) link error.
Failed to load /tmp/mydriver.kext - (libkern/kext) link error.
Failed to load /tmp/mydriver.kext - (libkern/kext) link error.
注意:必须禁用 SIP,因为我只需在测试机器上加载它。有没有人有提示或知道如何调整以使其加载?
解决方案
推荐阅读
- roku - AsyncGetToString 和 AsyncPostFromString 之间的区别?
- perl - 系统命令在 Perl 脚本中无法正常工作
- laravel-5 - 如何将 sum() 与 join 和 group by 语句一起使用
- javascript - 为什么一个包含单个数字的数组被认为是一个数字?
- python - 如何从 Pandas Dataframe 中的 n 个行列表中创建组合标题行
- groovy - 如何使用 groovy 从字符串 1,398.90 中删除逗号
- python - Pygame矩形没有被绘制
- linux - 如何使用带有 Perl -e 参数的 cat 读取文件?
- c# - 如何为“Visual Studio emulator for android”的模拟器安装证书?
- c - 测试迭代指针之间的关系是否安全?