Question

Je l'ai utilisé Clint Harris tutoriel pour mettre en place le partage de code entre les projets, et tout fonctionne comme prévu sur mon ordinateur. Mais sur ma machine collègue, il semble que le compilateur ne trouve pas le fichier d'en-tête du projet de bibliothèque statique quand il construit.

Mon collègue a mon projet par le clonage d'un dépôt git. Nous sommes passés par tous les drapeaux de construction appropriés et les paramètres de XCode n fois, mais le projet refuse simplement de compiler sur sa machine.

est ce que je demande à mon collègue de le faire, la plupart du temps copié et collé du tutoriel:

  1. Assurez-vous il n'y a pas d'espace vide dans le chemin complet vers le répertoire des projets.
  2. Dans le répertoire des projets, créer un autre dossier appelé "build_output".
  3. Dans XCode, sous « XCode> Préférences « choisissez l'onglet » Bâtiment » et mettre « en place des projets Créer » à « personnalisé emplacement » et spécifiez le chemin vers le répertoire de construction commune que vous avez créé.
  4. Set « La place des fichiers Créer intermédiaire dans » à « Avec des produits de construction. »
  5. Cliquez sur l'onglet « Source arbres » et de créer une nouvelle variable arbre source en cliquant sur le bouton « + » et remplir les colonnes. Dans les deux « Nom du paramètre » et « Display Name », mettre [Le nom du projet partagé qui a créé la bibliothèque statique]. En chemin, vous mettez le chemin complet vers le dossier-cadre.

Suite à ces étapes, le projet qui utilise la bibliothèque statique doit compiler le même sur sa machine que sur le mien. Mais il ne fonctionne pas. En fait, l'erreur qu'il obtient est:

error: TheFrameworkHeader.h: No such file or directory

et puis une série d'autres erreurs causées par l'en-tête manquante.

Les stratégies de dépannage cela? Ou quelqu'un qui a vécu une expérience similaire et pourrait partager certaines connaissances durement acquises? Quelque chose qui manque dans les instructions que j'ai résumé? Ai-je besoin de définir les rôles des en-têtes dans la phase de copie en-têtes construire lors de la compilation d'une bibliothèque statique?

Était-ce utile?

La solution

En dépit de quelques conseils utiles, je ne figurés celui-ci, mais voici un peu d'information pour toute personne dans une situation similaire. J'ai créé la bibliothèque et du projet dépend en divisant un projet original en deux. Dans un premier temps, la bibliothèque et l'application étaient seulement deux cibles dans le même projet. Plus tard, je me suis déplacé à l'application d'un projet distinct. Tout semblait fonctionner, et je poussé les deux projets de dépôts git à distance. Lorsque ceux-ci ont été clonés sur d'autres ordinateurs, cependant, les en-têtes de la bibliothèque sont introuvables.

Plus tard, je découvre que la même erreur quand je cloné les projets sur l'ordinateur d'origine. Après beaucoup de lutte, j'épinglé à un seul détail effrayant: le nom du dossier du projet dépend (. Autrement dit, le projet avec l'application, et non la bibliothèque) pas le nom de la package .xcodeproject, pas l'identificateur d'application, mais le nom du dossier contenant . Dès que je change que tout fonctionne. Si je change de nouveau au nom d'origine (sur un ordinateur), encore une fois les en-têtes ne sont pas trouvés.

Si quelqu'un a une idée sur ce point, s'il vous plaît poster une réponse!

EDIT: Depuis que je posté, le même problème est survenu avec un autre projet, et encore une fois, renommer simplement le dossier contenant le dossier .xcodeproject résolu le problème

.

Autres conseils

Je ne pense pas que ce soit Git, je pense qu'il est Xcode. Je suis un problème très similaire ici, où Xcode / xcodebuild résout un include_path faussement (ce qui en fait un simple.) Avec les exactement les mêmes fichiers de projet de bibliothèque et xcconfig (caisse propre de repo svn), mais un autre dossier contenant - cela fonctionne. Ainsi, pour la solution Thanx et ne blâme Git plus; -)

J'oublie souvent de le vérifier: êtes-vous sûr que le fichier manquant (c.-à-TheFrameWorkHeader.h » est dans le dépôt git Il se pourrait bien que vos paramètres de construction sont corrects, mais le dossier ne en quelque sorte pas ajoutés à? git correctement.

Si vous avez des problèmes de construction sur une machine particulière, le problème est probablement un réglage de la machine ou de l'utilisateur. Tels que variable d'environnement (peut-être include_path ou l'un de ses parents - XCode utilise GCC). Vous pouvez avoir un « » dans une de ces variables.

La meilleure façon de résoudre ce problème serait d'ajouter le chemin du dossier nécessaire au commutateur -I dans le script de compilation.

Vérifier que la « Recherche Paths-> Chemins de recherche en-tête utilisateur », construire de réglage (pour toutes les configurations) pointe vers le répertoire contenant le projet Xcode partagé (vous pouvez utiliser la nouvelle variable d'arbre Source créée).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top