2009-08-08 16 views
6

Mise à jour: Il semble qu'une mise à jour récente de XCode peut avoir changé cette macro, s'il vous plaît voir cette question & réponse pour plus d'informations: Obtaining older SDKROOT behavior in XCodeChemins de recherche d'en-tête dans XCode - Est-il possible de définir une macro ou des variables pour qu'elles soient relatives à la version du SDK?


Situation: J'utilise libxml2 sur un projet iPhone et je l'ai ajouté comme relatif à la version SDK. Toutefois, pour pouvoir réellement l'utiliser dans le projet, il doit être ajouté aux chemins de recherche d'en-tête dans les paramètres du projet. Je voudrais que ce soit complètement indépendant de la version du SDK, donc le chemin de recherche d'en-tête doit aussi être relatif à la version du SDK, cependant il n'y a pas moyen de développer une variable représentant le dossier du SDK.

Par exemple, voici le chemin littéral réel:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include/libxml2

J'aimerais être en mesure d'exprimer

$ MAGICAL_BASE_SDK_VARIABLE/usr/include/libxml2

est-ce quelque chose qui peut être accompli en utilisant Xcode?

Répondre

18

Les chiffres que je trouverais cela une heure après le combat et seulement 3 minutes après l'avoir posté.

La macro à utiliser dans cette situation est $ {SDKROOT}. Par conséquent, tout ce que vous devez faire est d'ajouter un chemin de recherche d'en-tête comme: "$ {SDKROOT}/usr/include/libxml2", et il sera résolu de manière appropriée.

Notez que le code ne fonctionne pas encore totalement, mais il est clair qu'il récupère au moins l'emplacement des fichiers d'en-tête.