XCode: Включить фреймворк в кекст? - PullRequest
2 голосов
/ 24 ноября 2011

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

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

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

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

1 Ответ

2 голосов
/ 24 ноября 2011

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

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

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

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

...