Envoyé par
solitrion
merci énormément
I learned a lot from that answer :p
Je crois que mon prob c'est que je ne peut pas inclure le fichier <console.h>
l'erreur que je reçois est : no such file or directory .
:s
Alors, là, il faut déjà faire attention à la casse du nom du fichier à inclure: console.h est (sous certains systèmes d'exploitation du moins) différent de Console.h.
La première chose est donc de vérifier si tu as correctement orthographié le nom du fichier que tu essaye d'inclure (y compris, et surtout, les éventuelles majuscules).
La deuxième chose à faire est de t'assurer que le compilateur connaisse le chemin d'accès au dossier dans lequel le fichier d'en-tête se trouve.
Si tu ne dis rien au compilateur, il va essayer de trouver les fichiers d'en-tête dans un nombre finalement très limité de dossiers:
- quelques dossiers qui sont connu pour contenir les fichiers d'en-tête "standard" et
- le dossier dans lequel se trouve le fichier .cpp qu'il est occupé à compiler.
Le problème, c'est que les projet sont souvent organisés de manière à séparer les fichiers d'en-tête (qui se trouvent bien souvent dans un dossier nommé "include")et les fichiers d'implémentation (qui se trouvent bien souvent dans un dossier nommé "src").
Une arborescence "classique" pourrait donc prendre la forme de
1 2 3 4 5 6 7 8 9
| dossier "racine" du projet
|-> bin
| c'est le dossier dans lequel s'effectue la compilation
|-> include
| |->Console.h
| |-> les autres fichiers .h
|->src
| |->Console.cpp
| |-> les autres fichiers .cpp |
|->d'autres dossiers éventuels
Evidemment, si tu ne précise pas au compilateur que
Ah, au fait, tu trouveras les fichiers d'en-tête dans le dossier include
il n'ira pas les chercher de lui-même.
Généralement, pour ajouter un dossier dans lequel le compilateur doit aller chercher après les fichiers d'en-tête, on utilise l'option I<chemin/vers/le/dossier_en_question> (il s'agit du i majuscule ).
Avec Gcc, par exemple, si tu te trouves dans le dossier bin (car c'est là que se fait la compilation) et que tu veux compiler Console.cpp, tu devrais utiliser la commande
g++ -c ../src/Console.cpp -o Console.o -I../include
Après, il y a énormément de choses qui dépendent de l'EDI éventuellement employé et / ou de la manière dont tu automatises la compilation.
Il est toujours utile de vérifier les options de compilation que ton EDI aura définies par défaut, afin, entre autres, de t'assurer qu'il a bel et bien rajouté le dossier qui contient les fichiers d'en-tête dans les options de compilation.
Mais ca, ca se fait de manière spécifique à l'EDI (chacun planquant ces informations où bon lui semble ), et je ne pourai pas t'en dire plus tant que je ne saurai pas lequel tu utilise
Enfin, si tu n'utilises pas d'EDI mais uniquement un système d'automatisation de la compilation comme cmake ou comme les Makefile, il faudra t'intéresser à la manière de rajouter les chemins utilisés pour la recherche des fichiers d'en-tête.
Cela passe généralement par le fait de rajouter l'option adéquate au niveau de variables ou comme CPP_FLAGS
Partager