8
votes

Xcode ne peut pas trouver #include <> en-tête

J'essaie d'obtenir Xcode d'importer le fichier d'en-tête pour Irlicht. xxx pré>

il dit "irrlicht.h. Aucun fichier ou répertoire". Oui irlicht.h avec une capitale I, même si la #include est minuscule. P>

de toute façon j'ai ajouté "/lib/irlicht-1.6/include" dans les chemins de recherche d'en-tête du projet Xcode, mais il reste-t-il toujours ne le trouve pas. p>

La seule chose que j'ai essayée que le travail est: p> xxx pré>

ceci est un peu ridicule cependant, #include Travaillez, je ne comprends pas pourquoi cela ne fonctionne pas. P>

Mise à jour (Voici plus de détails sur l'erreur): p>

/lib/PAL/pal_benchmark/palBenchmark/main.h:31:0
/lib/PAL/pal_benchmark/palBenchmark/main.h:31:22: error: irrlicht.h: No such file or directory


0 commentaires

5 Réponses :


2
votes

#include <irrlicht.h> 

#include "irrlicht.h" 


7 commentaires

Cela fonctionne - êtes-vous sûr qu'il y a un argument "-i /lib/irlib/irlicht-1.6/include" à GCC lorsque Xcode compile votre projet?


Je ne connais pas sur Xcode, mais un compilateur compatible standard devrait traiter les deux formes aussi efficacement la même chose - la différence est dans l'ordre des endroits où dans.


@Neil - Vous avez raison - je vais juste tester avec GCC (appelé par Xcode) et les deux variantes fonctionnent si l'option "-I" est correctement définie.


Je pensais ajouter de la voie à "Les chemins de recherche d'en-tête" effectivement: "-I /lib/irlib/irlicht-1.6/include"? De toute façon je savais déjà ce que vous essayiez de dire, il semble y avoir un problème étrange où cela ne fonctionne pas comme vous l'attendez normalement


Il fait - il y a quelque chose d'autre faux. Êtes-vous sûr que vous modifiez les chemins de recherche de l'option de construction actuelle? (C'est-à-dire que vous pourriez être votre édition pour le débogage et la diffusion de la publication).


Oui. J'édition pour "toutes les configurations". Oh, je viens de comprendre le problème. Bravo pour votre aide +1, je posterai la réponse dans une seconde.


Il suffit d'ajouter -l qui, dans mon cas, est -limp, puis ajoutez le chemin du dossier "Inclure" sur le chemin de l'en-tête et le dossier LIB sur le chemin de la bibliothèque.



15
votes

Je l'ai compris. Peut-être que quelqu'un peut commenter pourquoi c'est le cas.

L'en-tête était situé dans ce répertoire: xxx

Si j'ai ajouté ce chemin à: "Chemins de recherche d'en-tête" Xcode ne trouverait toujours pas le chemin quand j'ai construit le projet.

Solution: Ajoutez le chemin d'en-tête à: "Chemins de recherche de l'en-tête d'utilisateur" .

Il m'épuise pourquoi je devais faire cela, alors que je ajoute souvent mes chemins d'en-tête aux "chemins de recherche d'en-tête", puis #includes juste travailler. Espérons que cela peut aider quelqu'un d'autre qui reçoit ce même problème.


1 commentaires

Vous devrez peut-être également définir la préférence "Toujours chercher des chemins d'utilisateur" sur Oui.



0
votes

Plutôt que d'ajouter explicitement des chemins d'accès à vos paramètres de projet, une solution plus facile et plus pratique pour ce type de situation consiste simplement à faire glisser le répertoire contenant votre fichier .h/rlicht-1.6/include dans ce cas) le volet de fichiers de projet. Cela ajoute les en-têtes de votre projet bien sûr et facilite la navigation de la recherche de symboles, etc., et il ajoute également le chemin de répertoire des compilations GCC, de sorte que vous n'ayez pas à gérer les chemins incluent explicitement.


1 commentaires

Votre droite, glisser dans le répertoire d'en-tête fonctionne normalement. Sauf que je l'ai essayé et ça n'a pas fonctionné.



0
votes

Et en outre, une hiérarchie de fichiers plats n'est pas ce que vous voulez. Faites glisser les fichiers dans Xcode aplatit votre hiérarchie. Qu'en est-il de l'exemple lorsque vous souhaitez avoir plusieurs cibles, avec un fichier "cibleName / Paramètres.h" pour cette cible. Vous aurez de nombreux paramètres.h des fichiers que vous devez conserver uniques via son nom de dossier.


0 commentaires

0
votes

Je comprends que c'est un ancien poste, mais il se classe assez haut sur Google, alors je pensais ajouter des informations

Sous Xcode 3.2.6, j'ai eu un problème où XCode n'a pas pu trouver un fichier d'en-tête. Il s'avère que l'un des filèges comprenait un espace de l'espace et Xcode l'interprétait mal de manière incorrecte.

Par exemple: avec un chemin comme "Utilisateurs / nom d'utilisateur / projet / projet / des en-têtes"

Voici l'extrait de la ligne de commande GCC: "-I / Utilisateurs / Nom d'utilisateur / Bureau / Projet / Quelques" "-i / en-tête"

Pour voir votre journal de construction fourni par Xcode, il y a un bon tutoriel ici: Comment affichez-vous le journal de construction de Xcode? (En essayant de vérifier si la diffusion de la distribution d'iPhone a été créée correctement.)


0 commentaires