Xcode: Link 内核框架到内核扩展?
Xcode: Link kernel framework to kernel extension?
我正在尝试编写使用内核框架某些部分的内核扩展 (kext)。
我将 Kernel.framework 添加到目标设置中的框架和库列表中。
然而,当我尝试构建我的 kext 并且 link 反对它时,Xcode 拒绝这样做并声称无法找到框架,即使它已经出现在可用框架列表。
我做错了吗?是不是连kexts都不能用这个框架?
编辑:我知道用户 space 可以替代 kexts,但这些不能满足我的需求。
Kernel.framework
是一个 header-only“框架”。 Kext linking 与用户 space 可执行文件 linking 根本不同,因为没有 dyld
。您不需要在构建时针对任何库 link,但您必须在 Info.plist
文件的 OSBundleLibraries
字典中将 KPI 指定为 link。
您可以使用以下命令生成该词典的草稿:
kextlibs -xml -c path/to/your.kext
如果使用任何不受支持的 KPI,您还需要指定 -unsupported
。如果它抱怨找不到符号,添加 -undef-symbols
选项将有助于调试。
我正在尝试编写使用内核框架某些部分的内核扩展 (kext)。
我将 Kernel.framework 添加到目标设置中的框架和库列表中。
然而,当我尝试构建我的 kext 并且 link 反对它时,Xcode 拒绝这样做并声称无法找到框架,即使它已经出现在可用框架列表。
我做错了吗?是不是连kexts都不能用这个框架?
编辑:我知道用户 space 可以替代 kexts,但这些不能满足我的需求。
Kernel.framework
是一个 header-only“框架”。 Kext linking 与用户 space 可执行文件 linking 根本不同,因为没有 dyld
。您不需要在构建时针对任何库 link,但您必须在 Info.plist
文件的 OSBundleLibraries
字典中将 KPI 指定为 link。
您可以使用以下命令生成该词典的草稿:
kextlibs -xml -c path/to/your.kext
如果使用任何不受支持的 KPI,您还需要指定 -unsupported
。如果它抱怨找不到符号,添加 -undef-symbols
选项将有助于调试。