Salut,
J'ai 2 questions a propos des .h:
1-Quelle est la différence un <toto.h> , un <toto/momo.h> et un "toto.h" ?
2- Comment transformer un "toto.h" en un <toto.h> ?
Cordialement.
Salut,
J'ai 2 questions a propos des .h:
1-Quelle est la différence un <toto.h> , un <toto/momo.h> et un "toto.h" ?
2- Comment transformer un "toto.h" en un <toto.h> ?
Cordialement.
1- <toto.h> est dans les répertoires "connus" de ton compilateur
"toto.h" est dans les répertoires autres (définis sur ton projet)
<toto/momo.h> ton fichier momo.h est dans le répertoire "répertoire_connu_de_ton_compilo\toto\"
2- tu mets ton fichier dans les répertoires par défaut de ton compilo
2- tu ignores le mauvais conseil de Captain_JS et tu ajoutes plutôt le répertoire contenant toto.h à la liste de répertoires connus de ton compilo.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Tout à fait d'accord.
Une installation propre de bibliothèque par exemple se fait en 2 étapes :
- on installe la bibliothèque dans un répertoire sur son disque dur
- on ajoute les dossier "include" et "lib" de cette bibliothèque respectivement aux répertoires d'inclusion du compilateur et aux répertoires de liaison du compilateur. Cela se traduit par exemple pour GCC par l'ajout de paramètres -I et -L ('i' et 'l' majuscules) dans la commande de compilation de chacun des fichiers.
Cela permet entre autres lors d'une mise à jour de la bibliothèque de ne faire que remplacer l'ancienne par la nouvelle ou alors mettre la nouvelle dnas un autre répertoire et ainsi simplement changer les dossiers que l'on avait rajouté pour la version précédente dans les options du compilateur.
Mettre la main dans les dossiers include et lib fournis avec le compilateur ce n'est pas une bonne pratique.
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
Normalement, un #include <A> va commencer par chercher A dans les répertoire connus, puis relativement à l'unité de compilation (le .cpp)
Un #include "A" va commencer par chercher A relativement à l'unité de compilation puis dans les répertoire connus
Ensuite... rien ne t'empêche de mettre un chemin relatif, genre:
#include "../includes/toto.h"
Si ton fichier .cpp est dans "C:\test\src\toto.cpp", le précompilateur va d'abord chercher "C:\test\includes\toto.h"
Partager