質問

サードパーティのライブラリがI / O Kitライブラリの機能を使用しているため、カーネルフレームワークにリンクしようとしています( 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

(CoreAudioと同様に)カーネルフレームワークが/ System / Library / Frameworksにあると確信しています。しかし、リンカーはカーネルフレームワークを見つけることができません。カーネルフレームワークとリンクすることは禁じられていますか?

任意のアイデア?

ありがとう、ポール

役に立ちましたか?

解決

カーネルフレームワークは、カーネルとの賢明な通信とカーネル拡張機能の構築を可能にするヘッダーの束にすぎません。ユーザー空間アプリケーションとリンクするライブラリはありません。

ユーザー空間のIOKit関数を使用してIOKitのカーネル側と通信しようとしている場合は、IOKit.frameworkを使用する必要があります。ユーザー空間アプリケーションのKernel.frameworkヘッダーでのみ定義されている関数を使用しようとしている場合、何か間違ったことをしていることになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top