Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS]un pb avec un makefile ?

2 réponses
Avatar
KooK
Désolé de poster ici, mais beaucoup de lecteurs doivent connaître.

Mes sources cpp compilent quand je le fais "à la main".
Si j'utilise le makefile suivant, rien ne va.
------------------------
SRC = main.cpp FenetrePrincipale.cpp BarreMenu.cpp
OBJETS = $(SRC:.cpp=.o)
CC = gcc
FLAGS = -Wall -O9 -I"/usr/local/include/fox/"
LIBS = -lFOX
PROG = Seq.x

all : $(PROG)
clean :
rm -f *.o *~
M_Propre :
rm -f *.o *~ $(PROG)
$(PROG) : $(OBJETS)
$(CC) -o $@ $^ $(LIBS)
------------------------
Voici la première (et la seule) ligne exécutée.
g++ -c -o main.o main.cpp

Comme le chemin de la bibliothèque n'est pas préciser rien ne va.
Vous pouvez voir que le compilateur utilisé est g++ alors que celui du
makefile est gcc (volontairement).
Je n'ai pas mis le reste du fichier car je m'attendais à un message
d'erreur signalant "pas de règles pour définir OBJETS". Expliquez moi
d'où vient la ligne qui est exécutée svp, et comment obtenir quelque
chose de valable.

KooK

2 réponses

Avatar
Marc Boyer
Le 17-09-2006, KooK a écrit :
Désolé de poster ici, mais beaucoup de lecteurs doivent connaître.


fu2 fr.comp.os.unix qui est plus approprié 'en général'?

Mes sources cpp compilent quand je le fais "à la main".
Si j'utilise le makefile suivant, rien ne va.
------------------------
SRC = main.cpp FenetrePrincipale.cpp BarreMenu.cpp
OBJETS = $(SRC:.cpp=.o)
CC = gcc
FLAGS = -Wall -O9 -I"/usr/local/include/fox/"
LIBS = -lFOX
PROG = Seq.x

all : $(PROG)
clean :
rm -f *.o *~
M_Propre :
rm -f *.o *~ $(PROG)
$(PROG) : $(OBJETS)
$(CC) -o $@ $^ $(LIBS)
------------------------
Voici la première (et la seule) ligne exécutée.
g++ -c -o main.o main.cpp

Comme le chemin de la bibliothèque n'est pas préciser rien ne va.
Vous pouvez voir que le compilateur utilisé est g++ alors que celui du
makefile est gcc (volontairement).
Je n'ai pas mis le reste du fichier car je m'attendais à un message
d'erreur signalant "pas de règles pour définir OBJETS". Expliquez moi
d'où vient la ligne qui est exécutée svp, et comment obtenir quelque
chose de valable.


La ligne exécutée vient des 'built-in rules', ie les règles
prédéfinies. En général, le compilo utilisé pour faire un .o
à partir d'un .cpp est dans la macro CXX et non CC

Pour commencer, il faudrait savoir quel makefile tu utilises.
make -v
devrait donner des infos.

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. Paul Éluard)

Avatar
KooK
Désolé de poster ici, mais beaucoup de lecteurs doivent connaître.


fu2 fr.comp.os.unix qui est plus approprié 'en général'?
D'accord, je le saurais pour la prochaine fois


La ligne exécutée vient des 'built-in rules', ie les règles
prédéfinies. En général, le compilo utilisé pour faire un .o
à partir d'un .cpp est dans la macro CXX et non CC
Merci pour cette info.


Pour commencer, il faudrait savoir quel makefile tu utilises.
make -v
devrait donner des infos.
3.81


En ajoutant une règle (correcte) pour créer les objets tout rentre dans
l'ordre.

Marc Boyer