Qu'est ce qu'un .h.gch fichier?
J'ai eu récemment un projet de classe, où j'ai eu à faire un programme avec G++. J'ai utilisé un makefile et pour une raison de temps en temps laissé un .h.gch fichier de derrière. Parfois, cela n'affecte pas la compilation, mais le plus souvent il en résulterait que le compilateur de la délivrance d'une erreur pour une question qui avait été fixé ou qui n'a pas de sens. J'ai deux questions:
1) qu'est Ce qu'un .h.gch fichier et quel est celui qui est utilisé pour? et
2) Pourquoi serait-il causer des problèmes quand il n'était pas nettoyé?
Merci pour l'aide.
- gcc crée si vous avez accidentellement dire pour compiler un .h fichier. Ne pas le faire 🙂 (sauf si vous voulez vraiment créer un en-tête précompilé)
- En dehors de la GCC monde .gch les fichiers sont appelés .pch.
Vous devez vous connecter pour publier un commentaire.
Un
.gch
est un fichier d'en-tête précompilé.Si un
.gch
n'est pas trouvé, alors la normale fichiers d'en-tête sera utilisé.Toutefois, si votre projet est configuré pour générer les en-têtes précompilés il fera d'eux s'ils n'existent pas et de les utiliser dans la prochaine génération.
Parfois la
*.h.gch
corrompus ou contenir des informations obsolètes, ainsi, la suppression de ce fichier et de le compiler à nouveau devrait résoudre le problème.Si vous voulez savoir à propos d'un fichier, il suffit de taper sur le terminal
file a.h.gch
donne:.h.gch
fichier. Je soupçonne que vous avez besoin de fichiers de base de données pour cela.Son GCC en-tête précompilé.
Wikipedia a une demi décent explication, http://en.wikipedia.org/wiki/Precompiled_header
a) Ils sont les en-têtes précompilés:
http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html
b) qu'Elles contiennent "en cache" des informations .h fichiers et doivent être mis à jour chaque fois que vous changez respectifs .h fichier. Si ça n'arrive pas - vous avez tort jeu de dépendances de votre projet
Autres réponses sont tout à fait précis à l'égard de ce qu'est un gch fichier est. Cependant, le contexte (dans ce cas, un débutant à l'aide de g++), c'est tout. Dans ce contexte, il y a deux règles:
Jamais, jamais, jamais mettre un .h fichier sur un g++ compiler ligne. Seulement .fichiers cpp. Si un .h fichier est jamais compilé accidentellement, de supprimer tout *.gch fichiers
Jamais, jamais, jamais mettre un .fichier cpp dans une instruction #include.
Si la règle est cassé, à un certain point, le problème décrit dans la question va se produire.
Si la règle des deux est cassé, à un certain moment, l'éditeur de liens se plaindre de multiplier les symboles définis.