Recompilation uniquement d'un seul fichier

Signaler
Messages postés
48
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
16 février 2013
-
Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
-
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 !

Gerald

3 réponses

Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
114
librairie => bibliothèque !!! (En anglais: "library" => bibliothèque, "bookstore" => librairie).

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".

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Messages postés
48
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
16 février 2013
1
Bonjour,

Dans mon cas, je suis dans le second cas. Par contre, je suis sous Windows et pas sous Linux... Comment faire dans ce cas ?
Merci bcp

Vincent
Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
114
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.

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]