2 votes

XCode : Inclure un framework dans un kext ?

L'extension du noyau que j'écris doit inclure un framework (DirectIO), j'ai donc ajouté le framework dans la section "Linked Libraries" des propriétés de la cible. Je l'ai ensuite inclus dans le fichier source principal.

Le problème est qu'à chaque fois que j'essaie de le construire, il donne cette erreur :

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

J'utilise XCode 3.2 sur Snow Leopard, pour OSX i386. Est-il possible d'inclure un .framework dans une cible .kext ?

2voto

Macmade Points 27414

Je ne pense pas que vous puissiez lier un framework (autre que Kernel.framework) ou une bibliothèque dynamique lors de la construction d'une extension du noyau.

Votre code sera exécuté en mode superviseur. Les éléments liés au LD ne sont pas disponibles à ce stade.

Vous pouvez cependant établir des liens avec d'autres extensions (/System/Library/Extensions), en utilisant le fichier plist de votre kext (OSBundleLibraries).

Voir "Déterminer les dépendances de Kext" dans la section Sujets relatifs à la programmation de l'extension du noyau la documentation.

Il y a beaucoup de choses liées aux E/S dans l'extension du noyau disponible. Peut-être y trouverez-vous un équivalent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X