我正在编写的内核扩展需要包含一个框架(DirectIO),因此我在目标属性的“链接库”部分添加了该框架。然后我将其包含在主源文件中。
问题是,每当我尝试构建它时,它都会给出这个错误:
/Developer/usr/bin/ld_classic: incompatible flag -framework used (must specify "-dynamic" to be used)我在雪豹上使用的是XCode 3.2,为OSX i386构建。是否可以在.kext目标中包含.framework?
发布于 2011-11-24 08:05:17
我认为在构建内核扩展时,不能与框架(Kernel.framework除外)或动态库进行链接。
您的代码将在supervisor模式下运行。在那个阶段,LD相关的东西基本上是不可用的。
但是,您可以使用kext的plist文件(OSBundleLibraries)链接到其他扩展(/System/Library/ extensions )。
请参阅Kernel Extension Programming Topics文档的“确定Kext依赖项”。
在可用的内核扩展中有很多与I/O相关的东西。也许你会在那里找到一个等价物。
https://stackoverflow.com/questions/8250631
复制相似问题