IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème Include IDE Xcode


Sujet :

C++

  1. #1
    Membre actif
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Par défaut Problème Include IDE Xcode
    Bonjour,

    j'ai en charge un ancien projet de mon entreprise et j'aurais aimé avoir une précision concernant les include.

    Mettons que j'ai une arborescence simple comme celle qui suit :

    Projet/main.cpp
    Projet/image.h
    Projet/image.cpp
    Projet/Tools/ext.h
    Projet/Tools/ext.cpp

    Pour ajouter "image.h" au fichier "image.cpp" ok :
    Dans le fichier image.cpp
    Pour ajouter "ext.h" au fichier "ext.cpp" ok :
    Dans le fichier ext.cpp
    Jusque là on est d'accord.
    Maintenant imaginons que "image.h" doit être inclus dans "ext.h"

    Moi j'écrirais dans le fichier ext.h
    Mais voilà dans le code que j'ai repris il est écrit:
    Et en essayant dans un nouveau projet celà ne marche pas.

    Il y aurait-il un endroit où on pourrait écrire des "raccourcis" pour pouvoir inclure des headers avec les chevron ("<" et ">", comme<class.h> )sans devoir passer par tout le chemin ?

    Je ne sais pas si j'ai été assez claire, mais merci d'avance à ceux qui pourront m'éclairer.

    Je précise que je travaille sous Xcode (pour la première fois).

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut
    Bonjour,
    Ce n'est pas vraiment une question de chevron ou pas (si je ne dis pas de bêtise)...

    - En fait par convention <> les chevrons désignent les header du système.
    Par exemple tout les header de la stl, <vector>, <iostream>, etc...

    - Les "" indiquent les headers non standards.

    Sinon pour résoudre ton problème tu peux indiquer au compilateur le chemin des dossiers où doit se trouver tes headers.
    J'image que sous xCode, cela doit se configurer facilement. Ou sinon en ligne de commande avec l'option -I pour le compilateur g++.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 461
    Par défaut
    Citation Envoyé par omc24 Voir le message
    - En fait par convention <> les chevrons désignent les header du système.
    Par exemple tout les header de la stl, <vector>, <iostream>, etc...

    - Les "" indiquent les headers non standards.
    En pratique, si l'on fait abstraction d'un éventuel chemin passé entre les balises avec le nom du header, « <…> » provoque la recherche dudit fichier dans les répertoires standard, et ceux passés avec l'option -I (i majuscule) au compilateur, tandis que « "…" » effectue la recherche à partir du répertoire courant, c'est-à-dire celui dans lequel se trouve le fichier *.c qui contient l'include en question.

    L'idée derrière tout cela est d'utiliser la première méthode pour appeler les headers des bibliothèques externes installées sur la machine, quand la seconde sert à inclure ceux de son propre projet (ou éventuellement des ressources particulières comme les images *.xpm).

  4. #4
    Membre actif
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Par défaut
    Merci beaucoup pour toutes vos réponses. Je sens que ça va m'aider pour la suite.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Salut

    Je pense que dans les options de ton projet, tu dois avoir une variable ou un paramètre qui s'appelle "include dir" ou équivalent. Ce paramètre est la liste des répertoires dans lesquels le compilo va chercher tes headers (cela correspond à l'option I citée précédemment). Il te suffit d'ajouter la liste des répertoires de ton arborescence (séparés par des points virgules) pour rendre image.h accessible avec un simple #include "image.h".

    Edit : Qu'est ce que je disais ?

  6. #6
    Membre actif
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Par défaut
    Rha bien joué. J'étais justement entrain de chercher où ça pouvait bien se mettre.

    Mon problème est à 100% résolu, merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème include, structure et xcode
    Par devouring strossus dans le forum Débuter
    Réponses: 6
    Dernier message: 13/05/2009, 18h46
  2. Problème include
    Par djul94 dans le forum Langage
    Réponses: 10
    Dernier message: 26/03/2007, 13h49
  3. Problème includes pas conformes et incomplets
    Par souviron34 dans le forum Dev-C++
    Réponses: 6
    Dernier message: 30/01/2007, 20h57
  4. [VC++] Problème include de header
    Par Yellowmat dans le forum MFC
    Réponses: 10
    Dernier message: 08/12/2005, 13h50
  5. problème include avec win 2003 / IIS6
    Par fredoche dans le forum ASP
    Réponses: 3
    Dernier message: 26/09/2005, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo