Xcode:将内核框架链接到内核扩展吗?

时间:2020-10-18 21:13:28

标签: xcode macos kernel-extension

我正在尝试编写使用内核框架某些部分的内核扩展(kext)。

我在目标设置的框架和库列表中添加了Kernel.framework。

但是,当我尝试构建我的kext并与其链接时,Xcode拒绝这样做,并声称无法找到该框架,即使该框架已显示在可用框架列表中。

我做错了吗?即使对于kexts也无法使用此框架吗?

编辑:我知道kexts的用户空间替代方案,但这些不能满足我的需求。

1 个答案:

答案 0 :(得分:0)

Kernel.framework是仅标头的“框架”。 Kext链接与用户空间可执行链接从根本上不同,因为没有dyld。您无需在构建时链接任何库,但必须在Info.plist文件的OSBundleLibraries字典中指定要链接的KPI。

您可以使用以下命令生成此词典的草稿:

kextlibs -xml -c path/to/your.kext

如果使用任何不受支持的KPI,您还需要指定-unsupported。如果它抱怨找不到符号,则添加-undef-symbols选项将有助于调试。