【问题标题】:Xcode: Link kernel framework to kernel extension?Xcode:将内核框架链接到内核扩展?
【发布时间】:2021-02-01 16:50:12
【问题描述】:

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

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

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

我做错了吗?是不是连 kexts 都不能用这个框架?

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

【问题讨论】:

    标签: xcode macos kernel-extension


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 1970-01-01
      • 2011-10-14
      • 2011-06-24
      • 2016-07-10
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      相关资源
      最近更新 更多