cs_svince
Messages postés48Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention16 février 2013
-
7 juin 2010 à 18:53
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
9 juin 2010 à 17:45
Bonjour,
J'ai un petit souci en C++. J'ai un projet codé en C++ composé des fichiers source (.c), mais aussi des fichiers .o et le MakeFile.
Le problème est que la compilation a été faite à l'origine sous Linux (des librairies utilisées sont des librairies linux).
J'ai détecté une erreur très bête dans un fichier .c. Y a t-il un moyen pour ne recompiler que ce fichier et remplacer le fichier .o qui lui correspond ensuite par celui généré ?
Dites moi s'il faut que j'ai de l'espoir.
Merci pour votre aide !
Sinon, le but d'un makefile est justement de faire cela pour toi. S'il est bien fait lorsque tu feras "make", il ne te recompilera que ce qu'il faut (donc que le fichier en question).
Si la question est: Comment faire un bon makefile ? Alors copie colle ton makefile et je te dirais pourquoi il recompile tout.
Si la question est: Mon makefile est correct, mais je ne veux recompiler qu'un seul fichier moi même à la main, comment faire ?
Alors, tu peux taper un "g++ -C fichier.c -o fichier.o", mais il te faudra te toute façon relinker tout les *.o avec "ld".
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 9 juin 2010 à 17:45
Si tu as un makefile, alors tu peux surement exécuter des commandes.
Ajoute une nouvelle règle dans celui-ci, qui ne lance que la commande que je t'ai décrite.
Ex (avec une tabulation avant g++):
tmp:
g++ -C fichier.c -o fichier.o
Et tu fais un "make tmp".
Néanmoins, si tu es dans "le deuxième cas", un simple "make" devrait faire ce travail pour toi.