4

我正在尝试链接到内核框架,因为第 3 方库正在使用 I/O 工具包库中的函数(http://developer.apple.com/mac/library/documentation/Darwin/Reference/KernelIOKitFramework/index.html)。

我是 MacX 开发的新手,我在 Snow Leopard 上,我使用 -m32 标志进行编译。

g++-4.2 -headerpad_max_install_names -m32 -F/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ -F/System/Library/Frameworks/ -o myApp debug/main.o -F/Library/Frameworks -L/Library/Frameworks -framework OpenCL -framework CoreAudio -framework Kernel -framework QtGui -framework Carbon -framework AppKit -framework QtCore -lz -lm -framework ApplicationServices

我收到以下错误:

ld: framework not found Kernel

我确信内核框架位于 /System/Library/Frameworks 中(就像 CoreAudio 一样)。但是链接器找不到内核框架。是否禁止与内核框架链接?

有任何想法吗 ?

谢谢,保罗

4

1 回答 1

6

内核框架只是一堆头文件,以允许与内核进行合理的通信以及构建内核扩展的能力。其中没有库可以链接到用户空间应用程序。

如果您尝试使用用户空间 IOKit 函数与 IOKit 的内核端进行通信,您应该使用 IOKit.framework。如果您尝试使用仅在用户空间应用程序的 Kernel.framework 标头中定义的函数,那么您做错了。

于 2009-09-13T03:17:22.877 回答