IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme de loop makefile


Sujet :

C++

  1. #1
    Membre exp�riment�
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    D�cembre 2016
    Messages
    384
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 384
    Par d�faut Probleme de loop makefile
    Bonjour,
    Architecture:
    • une VM UNIX
    • Putty dont je me sert comme terminal
    • 2 Dossier sur windows partag� avec la vm
    • 1 Dossier avec mes classes
    • 1 Dossier regroupant mes main
    • Sublime text


    Jusque la tout allait bien lors de la compilation
    mais depuis hier je n'arrives plus a compiler plus d'une fois. C'est � dire que j'arrives encore a cr�er et recr�er les .o nn stop sans probl�me.
    La ou �a coince c'est que la ligne 63 (voir makefile) compile une fois et lorsque je fais des modifs mes .o sont recr��s et lors de la cr�ation de mon TestCalculette cela boucle et il n'en finit pas. Je suis oblig� de faire une interruption red�marrer la vm et la je peux � nouveau copiler 1 fois.

    Tests effecut�s =>
    • copie dans un autre dossier des fichiers pas d'ouverture cot� h�te pour �tre sure de ne pas avoir de protection en �criture qui aurait pus pauser probl�me le make la bloque aussi au 2e lancement.
    • lancer un autre putty m�me soucis
    • lancer l'ex�cution directement depuis la vm m�me soucis
    • diff�rentes copies de fichier comme le makefile,... sans succ�s
    • j'ai essay� d'ex�cuter la ligne de compilation manuellement (sans succ�s) du coup je me demandes si le probl�me ne pourrait pas �tre ailler
    • v�rification � l'aide de Vi si il n'y aurait pas un caract�re invisible qui se serrait ins�r� dans le makefile(normalement le make gueulerait mais on ne sait jamais) - r�ponses pas de caract�re


    les config de la VM entre le moment ou cela fonctionnait et maintenant n'ont pas chang�

    Code makefile : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
     
    GPP = g++ -Wall -DSUN -I ../../Pratique/ -I ../Ecran/
     
    PATH_CLASSES = ../../Pratique
     
    #--------------------------------------------------------------------#
     
    ECRAN.H = ../Ecran/Ecran.h
    ECRAN.CPP = ../Ecran/Ecran.cpp
     
     
    BASE_EXCEPTION.H = ${PATH_CLASSES}/BaseException.h
    BASE_EXCEPTION.CPP = ${PATH_CLASSES}/BaseException.cpp
     
    FRACTION_EXCEPTION.H = ${PATH_CLASSES}/FractionException.h
    FRACTION_EXCEPTION.CPP = ${PATH_CLASSES}/FractionException.cpp
     
    CALCULETTE_EXCEPTION.H = ${PATH_CLASSES}/CalculetteException.h
    CALCULETTE_EXCEPTION.CPP = ${PATH_CLASSES}/CalculetteException.cpp
     
     
    COULEUR.H = ${PATH_CLASSES}/Couleur.cpp
    COULEUR.CPP = ${PATH_CLASSES}/Couleur.cpp
     
    FRACTION.H = ${PATH_CLASSES}/Fraction.h
    FRACTION.CPP = ${PATH_CLASSES}/Fraction.cpp
     
    PANNEAU.H = ${PATH_CLASSES}/Panneau.h
    PANNEAU.CPP = ${PATH_CLASSES}/Panneau.cpp
     
    PANNEAU_IMAGE.H = ${PATH_CLASSES}/PanneauImage.h
    PANNEAU_IMAGE.CPP = ${PATH_CLASSES}/PanneauImage.cpp
     
    BOUTON.H = ${PATH_CLASSES}/Bouton.h
    BOUTON.CPP = ${PATH_CLASSES}/Bouton.cpp
     
    BOUTON_IMAGE.H = ${PATH_CLASSES}/BoutonImage.h
    BOUTON_IMAGE.CPP = ${PATH_CLASSES}/BoutonImage.cpp
     
    LISTE_BASE.H = ${PATH_CLASSES}/ListeBase.h
    LISTE_BASE.CPP = ${PATH_CLASSES}/ListeBase.cpp
     
    LISTE.H = ${PATH_CLASSES}/Liste.h
    LISTE.CPP = ${PATH_CLASSES}/Liste.cpp
     
    LISTE_TRIEE.H = ${PATH_CLASSES}/ListeTriee.h
    LISTE_TRIEE.CPP = ${PATH_CLASSES}/ListeTriee.cpp
     
    ITERATEUR.H = ${PATH_CLASSES}/Iterateur.h
    ITERATEUR.CPP = ${PATH_CLASSES}/Iterateur.cpp
     
    PILE.H = ${PATH_CLASSES}/Pile.h
    PILE.CPP = ${PATH_CLASSES}/Pile.cpp
     
    CALCULETTE.H = ${PATH_CLASSES}/Calculette.h
    CALCULETTE.CPP = ${PATH_CLASSES}/Calculette.cpp
     
    #--------------------------------------------------------------------#
    .SILENT:
     
    all: TestCalculette
     
    TestCalculette: TestCalculette.cpp Pile.o ListeBase.o Calculette.o Fraction.o FractionException.o BaseException.o PanneauImage.o Panneau.o Couleur.o Iterateur.o CalculetteException.o
    	echo Creation TestCalculette
    	${GPP} -o TestCalculette TestCalculette.cpp Pile.o ListeBase.o Calculette.o Fraction.o FractionException.o BaseException.o PanneauImage.o Panneau.o Couleur.o Iterateur.o CalculetteException.o
     
    mTestEgal:	Couleur.o Panneau.o BaseException.o PanneauImage.o Fraction.o FractionException.o ListeBase.o Liste.o Bouton.o Ecran.o Couleur.o Panneau.o mTestEgal.cpp
    	echo Creation mTestEgal
    	${GPP} -o mTestEgal Couleur.o Panneau.o BaseException.o PanneauImage.o Fraction.o FractionException.o ListeBase.o Liste.o Bouton.o Ecran.o mTestEgal.cpp
     
    #--------------------------------------------------------------------#
     
    Ecran.o: ${ECRAN.CPP} ${ECRAN.H}
    	echo Creation Ecran.o
    	${GPP} ${ECRAN.CPP} -c
     
    BaseException.o: ${BASE_EXCEPTION.CPP} ${BASE_EXCEPTION.H}
    	echo Creation BaseException.o
    	${GPP} ${BASE_EXCEPTION.CPP} -c
     
    Bouton.o: ${BOUTON.CPP} ${BOUTON.H} Panneau.o
    	echo Creation Bouton.o
    	${GPP} ${BOUTON.CPP} -c
     
    BoutonImage.o: ${BOUTON_IMAGE.CPP} ${BOUTON_IMAGE.H} Bouton.o PanneauImage.o
    	echo Creation BoutonImage.o
    	${GPP} ${BOUTON_IMAGE.CPP} -c
     
    Calculette.o: ${CALCULETTE.CPP} ${CALCULETTE.H} Pile.o Fraction.o
    	echo Creation Calculette.o
    	${GPP} ${CALCULETTE.CPP} -c
     
    CalculetteException.o: ${CALCULETTE_EXCEPTION.CPP} ${CALCULETTE_EXCEPTION.H} BaseException.o
    	echo Creation CalculetteException.o
    	${GPP} ${CALCULETTE_EXCEPTION.CPP} -c
     
    Couleur.o: ${COULEUR.CPP} ${COULEUR.H}
    	echo Creation Couleur.o
    	${GPP} ${COULEUR.CPP} -c
     
    Fraction.o: ${FRACTION.CPP} ${FRACTION.H} FractionException.o
    	echo Creation Fraction.o
    	${GPP} ${FRACTION.CPP} -c
     
    FractionException.o: ${FRACTION_EXCEPTION.CPP} ${FRACTION_EXCEPTION.H} BaseException.o
    	echo Creation FractionException.o
    	${GPP} ${FRACTION_EXCEPTION.CPP} -c
     
    Iterateur.o: ${ITERATEUR.CPP} ${ITERATEUR.H} ListeBase.o
    	echo Creation Iterateur.o
    	${GPP} ${ITERATEUR.CPP} -c
     
    Liste.o: ${LISTE.CPP} ${LISTE.H} ListeBase.o PanneauImage.o
    	echo Creation Liste.o
    	${GPP} ${LISTE.CPP} -c
     
    ListeBase.o: ${LISTE_BASE.CPP} ${LISTE_BASE.H} PanneauImage.o Fraction.o
    	echo Creation ListeBase.o
    	${GPP} ${LISTE_BASE.CPP} -c
     
    ListeTriee.o: ${LISTE_TRIEE.CPP} ${LISTE_TRIEE.H} ListeBase.o
    	echo Creation ListeTriee.o
    	${GPP} ${LISTE_TRIEE.CPP} -c
     
    Panneau.o: ${PANNEAU.CPP} ${PANNEAU.H} Couleur.o BaseException.o
    	echo Creation Panneau.o
    	${GPP} ${PANNEAU.CPP} -c
     
    PanneauImage.o: ${PANNEAU_IMAGE.CPP} ${PANNEAU_IMAGE.H} Panneau.o
    	echo Creation PanneauImage.o
    	${GPP} ${PANNEAU_IMAGE.CPP} -c
     
    Pile.o: ${PILE.CPP} ${PILE.H} ListeBase.o
    	echo Creation Pile.o
    	${GPP} ${PILE.CPP} -c
     
    del:
    	echo del *.o
    	del *.o
     
    rm:
    	echo rm *.o
    	rm *.o

    Une id�e car je dois l'avoir en plus de perdre du temps � red�marrer � chaque fois cela devient rageant.
    Des id�es de ce que je pourrais vous fournir de plus comme info?
    Merci d'avance

    PS: je commence � �tre un peut limit� dans le temps donc si une r�ponse plut�t qu'une aide � la r�flexion pourrait �tre donn� je vous en serrait reconnaissant


    AJOUT: j'arrives toujours a compiler d'autre main dans un dossier parent

  2. #2
    Membre Expert
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par d�faut
    Il y a de gros probl�me sur la structure du Makefile et je te conseille de lire un court dessus.

    - il existe des variables standard pour la compilation (compilateur, flags, etc) ou des actions ($(RM)) car tous les syst�mes n'utilisent pas les m�me commandes. D'ailleurs, la r�gles del/rm se nomme habituellement clean.
    - il y a des variables magique $*, $@ qui font r�f�rences aux �l�ments d'une r�gle � l'int�rieur de celle-ci. Ce genre de ligne ${GPP} -o TestCalculette TestCalculette.cpp Pile.o ..., c'est non. On �crit plus $(CXX) -o $@ $^ $(LDFLAGS).
    - pas besoin de faire echo ..., make poss�de l'option VERBOSE=1 qui affiche les commandes ex�cut�es.
    - les .o n'ont pas � d�pendre d'autres .o, seulement des .h et .cpp

    Sur ce dernier point, on se retrouve confront� � un probl�me plus que p�nible: lorsque les includes sont modifi�s dans un source, l'ensemble des r�gles qui en d�pendent doivent �tre r��crites. Gcc est d'autres compilateurs fournissent des options pour lister les d�pendances, ce qui implique une phase en 2 temps: mettre � jour les d�pendances puis compiler que des outils de build plus avanc�e g�re mieux.


    L� ou �a coince c'est que la ligne 63 (voir makefile) compile une fois et lorsque je fais des modifs mes .o sont recr��s et lors de la cr�ation de mon TestCalculette cela boucle et il n'en finit pas.
    Qui boucle ? make ? gcc ? Un ctrl-c devrait interrompre le programme.

    j'ai essay� d'ex�cuter la ligne de compilation manuellement (sans succ�s) du coup je me demande si le probl�me ne pourrait pas �tre ailleurs
    Sans succ�s = ne finit pas ? Du coup ce serait plus du c�t� de gcc donc au niveau du compilateur ou des sources.

  3. #3
    Membre exp�riment�
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    D�cembre 2016
    Messages
    384
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 384
    Par d�faut
    Bonjour et merci pour ces premieres informations,

    Loins de moi d'avoir envie d'apprendre mais je suis un petit peu a la bourre dans un dossier � rendre pour les cours pourrais tu me passer un correctif du make?
    Et que nous voyons cela plus en profondeur apres mes examens?
    merci d'avance

    Juste par rapport au rm et del je les avaient tap� car � la base je pouvais compiler sous windows et unix du coup cela me permettais de clean le dossier rapidement


    AJOUT:
    Voila les modif que je viens de faire d'apres ce que j'en ai compris
    Code makefile : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    GPP = g++ -Wall -DSUN -I ../../Pratique/ -I ../Ecran/
     
    PATH_CLASSES = ../../Pratique
     
    #--------------------------------------------------------------------#
     
    ECRAN.H = ../Ecran/Ecran.h
    ECRAN.CPP = ../Ecran/Ecran.cpp
     
     
    BASE_EXCEPTION.H = $(PATH_CLASSES)/BaseException.h
    BASE_EXCEPTION.CPP = $(PATH_CLASSES)/BaseException.cpp
     
    FRACTION_EXCEPTION.H = $(PATH_CLASSES)/FractionException.h
    FRACTION_EXCEPTION.CPP = $(PATH_CLASSES)/FractionException.cpp
     
    CALCULETTE_EXCEPTION.H = $(PATH_CLASSES)/CalculetteException.h
    CALCULETTE_EXCEPTION.CPP = $(PATH_CLASSES)/CalculetteException.cpp
     
     
    COULEUR.H = $(PATH_CLASSES)/Couleur.cpp
    COULEUR.CPP = $(PATH_CLASSES)/Couleur.cpp
     
    FRACTION.H = $(PATH_CLASSES)/Fraction.h
    FRACTION.CPP = $(PATH_CLASSES)/Fraction.cpp
     
    PANNEAU.H = $(PATH_CLASSES)/Panneau.h
    PANNEAU.CPP = $(PATH_CLASSES)/Panneau.cpp
     
    PANNEAU_IMAGE.H = $(PATH_CLASSES)/PanneauImage.h
    PANNEAU_IMAGE.CPP = $(PATH_CLASSES)/PanneauImage.cpp
     
    BOUTON.H = $(PATH_CLASSES)/Bouton.h
    BOUTON.CPP = $(PATH_CLASSES)/Bouton.cpp
     
    BOUTON_IMAGE.H = $(PATH_CLASSES)/BoutonImage.h
    BOUTON_IMAGE.CPP = $(PATH_CLASSES)/BoutonImage.cpp
     
    LISTE_BASE.H = $(PATH_CLASSES)/ListeBase.h
    LISTE_BASE.CPP = $(PATH_CLASSES)/ListeBase.cpp
     
    LISTE.H = $(PATH_CLASSES)/Liste.h
    LISTE.CPP = $(PATH_CLASSES)/Liste.cpp
     
    LISTE_TRIEE.H = $(PATH_CLASSES)/ListeTriee.h
    LISTE_TRIEE.CPP = $(PATH_CLASSES)/ListeTriee.cpp
     
    ITERATEUR.H = $(PATH_CLASSES)/Iterateur.h
    ITERATEUR.CPP = $(PATH_CLASSES)/Iterateur.cpp
     
    PILE.H = $(PATH_CLASSES)/Pile.h
    PILE.CPP = $(PATH_CLASSES)/Pile.cpp
     
    CALCULETTE.H = $(PATH_CLASSES)/Calculette.h
    CALCULETTE.CPP = $(PATH_CLASSES)/Calculette.cpp
     
    #--------------------------------------------------------------------#
    VERBOSE=1
     
    all: TestCalculette
    TestCalculette: TestCalculette.cpp Pile.o ListeBase.o Calculette.o Fraction.o FractionException.o BaseException.o PanneauImage.o Panneau.o Couleur.o Iterateur.o CalculetteException.o
    	$(GPP) -o TestCalculette TestCalculette.cpp Pile.o ListeBase.o Calculette.o Fraction.o FractionException.o BaseException.o PanneauImage.o Panneau.o Couleur.o Iterateur.o CalculetteException.o
     
    mTestEgal:	Couleur.o Panneau.o BaseException.o PanneauImage.o Fraction.o FractionException.o ListeBase.o Liste.o Bouton.o Ecran.o Couleur.o Panneau.o mTestEgal.cpp
    	$(GPP) -o mTestEgal Couleur.o Panneau.o BaseException.o PanneauImage.o Fraction.o FractionException.o ListeBase.o Liste.o Bouton.o Ecran.o mTestEgal.cpp
     
    #--------------------------------------------------------------------#
     
    Ecran.o: $(ECRAN.CPP) $(ECRAN.H)
    	$(GPP) $(ECRAN.CPP) -c
     
    BaseException.o: $(BASE_EXCEPTION.CPP) $(BASE_EXCEPTION.H)
    	$(GPP) $(BASE_EXCEPTION.CPP) -c
     
    Bouton.o: $(BOUTON.CPP) $(BOUTON.H)
    	$(GPP) $(BOUTON.CPP) -c
     
    BoutonImage.o: $(BOUTON_IMAGE.CPP) $(BOUTON_IMAGE.H)
    	$(GPP) $(BOUTON_IMAGE.CPP) -c
     
    Calculette.o: $(CALCULETTE.CPP) $(CALCULETTE.H)
    	$(GPP) $(CALCULETTE.CPP) -c
     
    CalculetteException.o: $(CALCULETTE_EXCEPTION.CPP) $(CALCULETTE_EXCEPTION.H)
    	$(GPP) $(CALCULETTE_EXCEPTION.CPP) -c
     
    Couleur.o: $(COULEUR.CPP) $(COULEUR.H)
    	$(GPP) $(COULEUR.CPP) -c
     
    Fraction.o: $(FRACTION.CPP) $(FRACTION.H)
    	$(GPP) $(FRACTION.CPP) -c
     
    FractionException.o: $(FRACTION_EXCEPTION.CPP) $(FRACTION_EXCEPTION.H)
    	$(GPP) $(FRACTION_EXCEPTION.CPP) -c
     
    Iterateur.o: $(ITERATEUR.CPP) $(ITERATEUR.H)
    	$(GPP) $(ITERATEUR.CPP) -c
     
    Liste.o: $(LISTE.CPP) $(LISTE.H)
    	$(GPP) $(LISTE.CPP) -c
     
    ListeBase.o: $(LISTE_BASE.CPP) $(LISTE_BASE.H)
    	$(GPP) $(LISTE_BASE.CPP) -c
     
    ListeTriee.o: $(LISTE_TRIEE.CPP) $(LISTE_TRIEE.H)
    	$(GPP) $(LISTE_TRIEE.CPP) -c
     
    Panneau.o: $(PANNEAU.CPP) $(PANNEAU.H)
    	$(GPP) $(PANNEAU.CPP) -c
     
    PanneauImage.o: $(PANNEAU_IMAGE.CPP) $(PANNEAU_IMAGE.H)
    	$(GPP) $(PANNEAU_IMAGE.CPP) -c
     
    Pile.o: $(PILE.CPP) $(PILE.H)
    	$(GPP) $(PILE.CPP) -c
     
    clean:
    	rm *.o
    mais j'ai toujours le m�me soucis

    Quand � la boucle j'ai suppos� que le make bouclais en arriere plan ce qu'il y a � l'�cran est juste l'attente de la fin du make mais je peux attendre des h sans que la fin ne viennes.
    C'est effectivement via un Ctrl+C que je fais l'interruption mais je n'ai du coup �videmment pas on fichier executable de cr��

    Citation Envoy� par jo_link_noir Voir le message
    Sans succ�s = ne finit pas ? Du coup ce serait plus du c�t� de gcc donc au niveau du compilateur ou des sources.
    C'est probable et c'est ce que je supposais en 2e option �tant donn�e qu'en ex�cutant la ligne manuellement je me retrouvais fasse au m�me probleme

  4. #4
    Membre Expert
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par d�faut
    Pour le correctif tu pourras le faire quand tu auras regard� un cours dessus, perso je n'ai pas envie et � priori cela ne changera rien au probl�me actuel.

    Note: Pour clean on fait plut�t

    -----

    Par contre le probl�me est particulier. S'il compile une fois, pas de raison de tourner en boucle la seconde fois, surtout s'il suffit de red�marrer la vm. SI tu supprimes l'exe et tous les .o, �a le fait encore ? Tu as essay� avec un autre compilateur (clang/clang++) ou une autre version de gcc ?

    Il faudrait voir qui tourne derri�re (gcc lance d'autre soft) et sur quoi il bloque pendant qu'il tourne (ctrl+z puis la commande bg puis top ou autre utilitaire pour voir les processus qui tournent). Si le processus ne fait rien, il attend probablement une �criture ou une lecture (mais sur quoi?) et peut-�tre que strace donnera quelque chose (strace g++ -o ...). C'est les derni�res lignes qui sont importantes (le programme est dans les paquets de la plupart des distributions).

  5. #5
    Membre exp�riment�
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    D�cembre 2016
    Messages
    384
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 384
    Par d�faut
    Si je supprimes tout les .o il va me reg�n�rer les .o mais restera bloqu� sur la compilation du TestCalculette
    Pas test� avec d'autre compilateurs j'ai que G++ � ma connaissance (je ne m'y connais pas trop) je viens d'avoir 4 mois de C++ et on s'est pas vraiment attard� sur la compilation on a eu des cours de base de makefile juste de quoi pouvoir compiler et "this is it"



    voici pour strace
    Images attach�es Images attach�es   

  6. #6
    Membre Expert
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par d�faut
    Dans le top, ld tourne toujours � 100% ? Si c'est le cas, je ne sais absolument pas d'o� cela peut venir, d�sol� :/.

  7. #7
    Membre exp�riment�
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    D�cembre 2016
    Messages
    384
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 384
    Par d�faut
    non ld ce lance que lorce que je lance le make
    sinon il ne prend pas de resource

  8. #8
    Membre Expert
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par d�faut
    Je voulais dire quand tu compiles. Ld est le programme d'�dition de liens qui cr�e l'ex�cutable final.

  9. #9
    Membre exp�riment�
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    D�cembre 2016
    Messages
    384
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 384
    Par d�faut Correction makefile
    Hello,
    Comme dis je reviens vers toi apr�s mes examens pour voir si mon makefile est correcte et voir quels am�liorations/corrections je pourrais y apporter
    Code makefile : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
     
    PATH_CLASSES = ../Pratique
    #--------------------------------------------------------------------#
     
    ECRAN.H = Ecran/Ecran.h
    ECRAN.CPP = Ecran/Ecran.cpp
     
    WINDOW_SDL.H = WindowSDL/WindowSDL.h
    WINDOW_SDL.CPP = WindowSDL/WindowSDL.cpp
     
    WINDOW_SDL_EXCEPTION.H = WindowSDL/WindowSDLexception.h
    WINDOW_SDL_EXCEPTION.CPP = WindowSDL/WindowSDLexception.cpp
     
    WINDOW_SDL_CLICK.H = WindowSDL/WindowSDLclick.h
    WINDOW_SDL_CLICK.CPP = WindowSDL/WindowSDLclick.cpp
     
    WINDOW_SDL_IMAGE.H = WindowSDL/WindowSDLimage.h
    WINDOW_SDL_IMAGE.CPP = WindowSDL/WindowSDLimage.cpp
     
    #--------------------------------------------------------------------#
     
    BASE_EXCEPTION.H = $(PATH_CLASSES)/BaseException.h
    BASE_EXCEPTION.CPP = $(PATH_CLASSES)/BaseException.cpp
     
    BOUTON.H = $(PATH_CLASSES)/Bouton.h
    BOUTON.CPP = $(PATH_CLASSES)/Bouton.cpp
     
    BOUTON_IMAGE.H = $(PATH_CLASSES)/BoutonImage.h
    BOUTON_IMAGE.CPP = $(PATH_CLASSES)/BoutonImage.cpp
     
    CALCULETTE.H = $(PATH_CLASSES)/Calculette.h
    CALCULETTE.CPP = $(PATH_CLASSES)/Calculette.cpp
     
    CALCULETTE_EXCEPTION.H = $(PATH_CLASSES)/CalculetteException.h
    CALCULETTE_EXCEPTION.CPP = $(PATH_CLASSES)/CalculetteException.cpp
     
    CONTROLEUR.H = $(PATH_CLASSES)/Controleur.h
    CONTROLEUR.CPP = $(PATH_CLASSES)/Controleur.cpp
     
    COULEUR.H = $(PATH_CLASSES)/Couleur.cpp
    COULEUR.CPP = $(PATH_CLASSES)/Couleur.cpp
     
    ECOUTEUR.H = $(PATH_CLASSES)/Ecouteur.h
     
    FRACTION.H = $(PATH_CLASSES)/Fraction.h
    FRACTION.CPP = $(PATH_CLASSES)/Fraction.cpp
     
    FRACTION_EXCEPTION.H = $(PATH_CLASSES)/FractionException.h
    FRACTION_EXCEPTION.CPP = $(PATH_CLASSES)/FractionException.cpp
     
    FENETRE.H = $(PATH_CLASSES)/Fenetre.h
    FENETRE.CPP = $(PATH_CLASSES)/Fenetre.cpp
     
    FENETRE_CALCULETTE.H = $(PATH_CLASSES)/FenetreCalculette.h
    FENETRE_CALCULETTE.CPP = $(PATH_CLASSES)/FenetreCalculette.cpp
     
    ITERATEUR.H = $(PATH_CLASSES)/Iterateur.h
    ITERATEUR.CPP = $(PATH_CLASSES)/Iterateur.cpp
     
    PANNEAU.H = $(PATH_CLASSES)/Panneau.h
    PANNEAU.CPP = $(PATH_CLASSES)/Panneau.cpp
     
    PANNEAU_IMAGE.H = $(PATH_CLASSES)/PanneauImage.h
    PANNEAU_IMAGE.CPP = $(PATH_CLASSES)/PanneauImage.cpp
     
    LISTE.H = $(PATH_CLASSES)/Liste.h
    LISTE.CPP = $(PATH_CLASSES)/Liste.cpp
     
    LISTE_BASE.H = $(PATH_CLASSES)/ListeBase.h
    LISTE_BASE.CPP = $(PATH_CLASSES)/ListeBase.cpp
     
    LISTE_TRIEE.H = $(PATH_CLASSES)/ListeTriee.h
    LISTE_TRIEE.CPP = $(PATH_CLASSES)/ListeTriee.cpp
     
    PILE.H = $(PATH_CLASSES)/Pile.h
    PILE.CPP = $(PATH_CLASSES)/Pile.cpp
     
    #--------------------------------------------------------------------#
    .SILENT:
     
    ALL_PATH = -I Ecran -I WindowSDL -I $(PATH_CLASSES)
    CC = g++ -m64 -Wall -DSUN -lpthread -lSDL $(ALL_PATH)
     
    BOUTON_O = Bouton.o BoutonImage.o
    CALCULETTE_O = Calculette.o CalculetteException.o
    FENETRE_O = Fenetre.o FenetreCalculette.o
    FRACTION_O = Fraction.o FractionException.o
    LISTE_O = Liste.o ListeBase.o ListeTriee.o Pile.o
    PANNEAU_O = Panneau.o PanneauImage.o
    WINDOW_SDL_O = WindowSDL.o WindowSDLexception.o WindowSDLclick.o WindowSDLimage.o
     
    OBJS = Ecran.o BaseException.o Couleur.o Iterateur.o Controleur.o $(BOUTON_O) $(CALCULETTE_O) $(FENETRE_O) $(FRACTION_O) $(LISTE_O) $(PANNEAU_O) $(WINDOW_SDL_O)
    #--------------------------------------------------------------------#
     
    PROGRAMS = main3 #TestFenetreCalculette3 TestCalculette #TestCalculette3 TestFenetre
     
    #--------------------------------------------------------------------#
     
    all: $(PROGRAMS)
     
    TestCalculette: TestCalculette.cpp $(OBJS)
    	echo creation TestCalculette
    	$(CC) -o TestCalculette TestCalculette.cpp $(OBJS)
     
    TestFenetre: TestFenetre.cpp $(OBJS)
    	echo creation TestFenetre
    	$(CC) -o TestFenetre TestFenetre.cpp $(OBJS)
     
    TestFenetreCalculette3: TestFenetreCalculette3.cpp $(OBJS)
    	echo creation TestFenetreCalculette3
    	$(CC) -o TestFenetreCalculette3 TestFenetreCalculette3.cpp $(OBJS)
     
    main3: main.cpp $(OBJS)
    	echo creation main
    	$(CC) -o main3 main.cpp $(OBJS)
     
    #--------------------------------------------------------------------#
     
    Ecran.o: $(ECRAN.CPP) $(ECRAN.H)
    	echo creation Ecran.o
    	$(CC) $(ECRAN.CPP) -c
     
    WindowSDL.o: $(WINDOW_SDL.CPP) $(WINDOW_SDL.H)
    		echo Creation de WindowSDL.o
    		$(CC) -c $(WINDOW_SDL.CPP)
     
    WindowSDLexception.o: $(WINDOW_SDL_EXCEPTION.CPP) $(WINDOW_SDL_EXCEPTION.H)
    		echo Creation de WindowSDLexception
    		$(CC) -c $(WINDOW_SDL_EXCEPTION.CPP)
     
    WindowSDLclick.o: $(WINDOW_SDL_CLICK.CPP) $(WINDOW_SDL_CLICK.H)
    		echo Creation de WindowSDLclick
    		$(CC) -c $(WINDOW_SDL_CLICK.CPP)
     
    WindowSDLimage.o: $(WINDOW_SDL_IMAGE.CPP) $(WINDOW_SDL_IMAGE.H)
    		echo Creation de WindowSDLimage
    		$(CC) -c $(WINDOW_SDL_IMAGE.CPP)
     
    #--------------------------------------------------------------------#
     
    BaseException.o: $(BASE_EXCEPTION.CPP) $(BASE_EXCEPTION.H)
    	echo creation BaseException.o
    	$(CC) $(BASE_EXCEPTION.CPP) -c
     
    Bouton.o: $(BOUTON.CPP) $(BOUTON.H)
    	echo creation Bouton.o
    	$(CC) $(BOUTON.CPP) -c
     
    BoutonImage.o: $(BOUTON_IMAGE.CPP) $(BOUTON_IMAGE.H)
    	echo creation BoutonImage.o
    	$(CC) $(BOUTON_IMAGE.CPP) -c
     
    Calculette.o: $(CALCULETTE.CPP) $(CALCULETTE.H)
    	echo creation Calculette.o
    	$(CC) $(CALCULETTE.CPP) -c
     
    CalculetteException.o: $(CALCULETTE_EXCEPTION.CPP) $(CALCULETTE_EXCEPTION.H)
    	echo creation CalculetteException.o
    	$(CC) $(CALCULETTE_EXCEPTION.CPP) -c
     
    Controleur.o: $(CONTROLEUR.CPP) $(CONTROLEUR.H)
    	echo creation controleur.o
    	$(CC) $(CONTROLEUR.CPP) -c
     
    Couleur.o: $(COULEUR.CPP) $(COULEUR.H)
    	echo creation Couleur.o
    	$(CC) $(COULEUR.CPP) -c
     
    Fenetre.o: $(FENETRE.CPP) $(FENETRE.H)
    	echo creation Fenetre.o
    	$(CC) $(FENETRE.CPP) -c
     
    FenetreCalculette.o: $(FENETRE_CALCULETTE.CPP) $(FENETRE_CALCULETTE.H)
    	echo creation FenetreCalculette.o
    	$(CC) $(FENETRE_CALCULETTE.CPP) -c
     
    Fraction.o: $(FRACTION.CPP) $(FRACTION.H)
    	echo creation Fraction.o
    	$(CC) $(FRACTION.CPP) -c
     
    FractionException.o: $(FRACTION_EXCEPTION.CPP) $(FRACTION_EXCEPTION.H)
    	echo creation FractionException.o
    	$(CC) $(FRACTION_EXCEPTION.CPP) -c
     
    Iterateur.o: $(ITERATEUR.CPP) $(ITERATEUR.H)
    	echo creation Iterateur.o
    	$(CC) $(ITERATEUR.CPP) -c
     
    Liste.o: $(LISTE.CPP) $(LISTE.H)
    	echo creation Liste.o
    	$(CC) $(LISTE.CPP) -c
     
    ListeBase.o: $(LISTE_BASE.CPP) $(LISTE_BASE.H)
    	echo creation ListeBase.o
    	$(CC) $(LISTE_BASE.CPP) -c
     
    ListeTriee.o: $(LISTE_TRIEE.CPP) $(LISTE_TRIEE.H)
    	echo creation ListeTriee.o
    	$(CC) $(LISTE_TRIEE.CPP) -c
     
    Panneau.o: $(PANNEAU.CPP) $(PANNEAU.H)
    	echo creation Panneau.o
    	$(CC) $(PANNEAU.CPP) -c
     
    PanneauImage.o: $(PANNEAU_IMAGE.CPP) $(PANNEAU_IMAGE.H)
    	echo creation PanneauImage.o
    	$(CC) $(PANNEAU_IMAGE.CPP) -c
     
    Pile.o: $(PILE.CPP) $(PILE.H)
    	echo creation Pile.o
    	$(CC) $(PILE.CPP) -c
     
    #clean:
    #	$(RM) *.o
     
    clean:
    	@rm -f $(OBJS) core
     
    clobber:	clean
    	@rm -f tags $(PROGRAMS)

    Voila et merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probleme de dependence (makefile sous linux)
    Par ---okaido--- dans le forum Syst�mes de compilation
    R�ponses: 0
    Dernier message: 23/09/2008, 17h49
  2. probleme avec loop
    Par nicerico dans le forum Flash
    R�ponses: 1
    Dernier message: 02/06/2008, 10h39
  3. Problem de loop
    Par aminho10 dans le forum SQL
    R�ponses: 5
    Dernier message: 30/04/2008, 13h47
  4. Problème avec un Makefile
    Par _kal_ dans le forum Linux
    R�ponses: 1
    Dernier message: 03/08/2006, 19h12
  5. Problème sur un Makefile
    Par Ickou dans le forum Linux
    R�ponses: 4
    Dernier message: 15/11/2005, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo