2009-10-29 5 views
26

Je crée une bibliothèque statique sur Mac OS X pour l'un de nos clients, ainsi qu'une petite application de ligne cmd pour tester la bibliothèque statique. Le projet de ligne cmd a 2 chemins de recherche de bibliothèque supplémentaires, ce qui signifiait que je liai la version de Debug en mode Release et devinais fou, alors j'ai essayé de me débarrasser de ces deux chemins, mais je ne pouvais pas trouver où ils étaient spécifiés . Je regardais dans les informations du projet, mais il s'avère qu'ils ont été spécifiés dans les informations sur la cible.Xcode: paramètres du projet par rapport aux paramètres cibles

Je ne comprends pas la distinction ?! Pourquoi y a-t-il 2 ensembles de paramètres, qui sont essentiellement les mêmes ?! Quelqu'un peut-il m'éclairer?

Répondre

39

Un projet peut contenir plusieurs cibles. Par exemple, une application que j'écris a quatre - l'application elle-même, un plugin Quick Look, un framework et un bundle qui contient des fonctionnalités spécifiques à Mac OS 10.6 qui peuvent être chargées dynamiquement.

Les paramètres du projet s'appliquent à chaque cible dans le projet. Chaque cible peut alors remplacer les paramètres individuels s'ils en ont besoin - par exemple, le SDK cible de mon projet est défini sur 10.5, mais l'ensemble spécifique 10.6 a son SDK cible défini sur 10.6.

Dans certains cas, certains paramètres n'ont pas de sens d'être dans les paramètres du projet - l'un d'entre eux, je suppose, est les chemins de recherche.

+0

Question corollaire: Comment suis-je supposé inclure la bibliothèque statique dans le projet d'application de ligne cmd? Par glisser-déposer dans la liste des fichiers source? Ou à partir des paramètres de construction? – vectorizor

+4

@iKenndac, pouvez-vous expliquer pourquoi "certains paramètres n'ont pas de sens d'être dans les paramètres du projet"? Je n'ai qu'une cible dans chaque projet et je suis toujours confus au sujet de la définition des chemins de recherche. – topace

8

Vous avez souvent plusieurs cibles dans un seul projet - par exemple, vous pouvez avoir un projet de structure avec une cible pour la construction en tant que groupe dynamique .framework, et une cible pour la construction d'une bibliothèque statique. Votre application peut également avoir pour cible la création de l'application elle-même et une cible pour la création d'un outil de ligne de commande d'assistance qu'elle doit installer. Dans la mesure du possible, je suggère de modifier les paramètres au plus haut niveau (dans les paramètres du projet, et de changer simultanément les configurations de libération de débogage &), et de personnaliser uniquement les paramètres de la cible si nécessaire. Mieux encore, déplacez autant de paramètres que possible dans les fichiers xcconfig, ce qui semble être une façon beaucoup plus explicite de spécifier votre configuration de build.