2010-11-02 3 views
1

Dire que j'ai une bibliothèque statique qui a été créé avec la structure de fichier suivant:Comment inclure une bibliothèque statique et que ses chemins d'importation sont toujours valides?

  • Dossier1
    • File1.h
  • Dossier2
    • File2.h

Maintenant à l'intérieur de File1.h, il se réfère à File2.h sans un chemin (par ex. #import File2.h). La bibliothèque se construit avec succès. (Il ne nécessite pas le chemin d'accès complet (#import Folder2/File2.h) car les deux fichiers font partie du même projet.)

Maintenant, quand j'inclue cette bibliothèque dans un autre projet, cette instruction #import File2.h ne se compile plus, et je dois changer à #import Folder2/File2.h (ou quelque chose de similaire). Cela signifie que je dois modifier la bibliothèque d'origine, ce qui n'est pas bon.

Le message d'erreur spécifique que je reçois est:

File2.h: Aucun fichier ou répertoire

Il ne semble pas être un moyen de faire savoir que les deux fichiers doivent faire partie de ce nouveau projet, puisque les deux seuls fichiers que je vois après avoir inclus la bibliothèque sont MyLib.xcodeproj et lixMyLib.a.

La façon dont je la bibliothèque statique inclus dans mon nouveau projet en procédant comme suit:

  1. glisser MyLib.xcodeproj dans mon nouveau projet.
  2. Ajoutez le fichier libMyLib.a à la cible de mon nouveau projet.
  3. Ajouter à l'en-tête Rechercher les chemins un chemin relatif vers le répertoire de base de ma bibliothèque (le dossier qui contient Folder1 et Folder2).

Est-il possible de savoir automatiquement où trouver ces fichiers comme il était capable de le faire dans la bibliothèque elle-même? Je me rends compte que je peux probablement ajouter les chemins Folder1 et Folder2 aux chemins de recherche d'en-tête de mon nouveau projet, mais je cherche un meilleur moyen, puisque ces deux dossiers sont juste un exemple, et il pourrait tout aussi bien être 50 dossiers Je devrais inclure. Je suis à la recherche d'une solution qui ne nécessite pas de taper les chemins de tous les 50 de ces dossiers, si possible.

+0

Je ne comprends pas, pourquoi quelqu'un veut-il inclure un fichier .m? – JustSid

+0

@JustSid: Oups, c'était juste un exemple. Je l'ai corrigé pour utiliser .h à la place. – Senseful

Répondre

1

Essayez de cocher la case "Récursif" à côté du chemin d'accès au dossier parent de tous ces en-têtes.

+0

Merci, cela a fonctionné. – Senseful

Questions connexes