【问题标题】:XCode: Include framework in a kext?XCode:在 kext 中包含框架?
【发布时间】:2011-11-23 23:42:53
【问题描述】:

我正在编写的内核扩展需要包含一个框架(DirectIO),所以我在目标属性的“链接库”部分添加了该框架。然后我将它包含在主源文件中。

问题是,每当我尝试构建它时,它都会出现此错误:

/Developer/usr/bin/ld_classic: incompatible flag -framework used (must specify "-dynamic" to be used)

我在 Snow Leopard 上使用 XCode 3.2,为 OSX i386 构建。是否可以在 .kext 目标中包含 .framework?

【问题讨论】:

    标签: c xcode frameworks kernel-extension


    【解决方案1】:

    我认为在构建内核扩展时,您不能链接到框架(Kernel.framework 除外)或动态库。

    您的代码将以主管模式运行。那个阶段基本没有LD相关的东西。

    但是,您可以使用您的 kext 的 plist 文件 (OSBundleLibraries) 与其他扩展 (/System/Library/Extensions) 链接。

    请参阅Kernel Extension Programming Topics 文档的“确定 Kext 依赖项”。

    在可用的内核扩展中有很多与 I/O 相关的东西。也许你会找到一个等价物。

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      相关资源
      最近更新 更多