2011-11-23 2 views
2

Ядро, которое я пишу, должно включать фреймворк (DirectIO), поэтому я добавил фреймворк в разделе «Связанные библиотеки» целевых свойств. Затем я включил его в основной исходный файл.XCode: включить фреймворк в kext?

Проблема заключается в том, всякий раз, когда я пытаюсь построить его, он дает эту ошибку:

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

Я использую XCode 3.2 на Snow Leopard, создание для OSX i386. Можно ли включить .framework в цель .kext?

ответ

2

Я не думаю, что вы можете связываться с каркасом (кроме Kernel.framework) или динамической библиотекой при создании расширения ядра.

Ваш код будет работать в режиме супервизора. Связанный с LD материал в основном не доступен на этом этапе.

Вы можете, тем не менее, связываться с другими расширениями (/ System/Library/Extensions), используя ваш plist-файл kext (OSBundleLibraries).

См. «Определение зависимостей Kext» в документации Kernel Extension Programming Topics.

В доступном расширении ядра имеется много связанных с I/O объектов. Может быть, вы найдете там эквивалент.

+0

Спасибо, это работает! – Eli

Смежные вопросы