Je pense avoir un problème avec mon makefile. J'écris ce programme:Problème avec mon makefile
Q2.cpp
contient le principal.Agent.cpp
Agent.h
Timing.cpp
Timing.h
RandomDouble.cpp
RandomDouble.cpp
Et j'utilise l'en-tête randoma.h
dans RandomDouble.cpp
. Je téléchargé le fichier randomaelf64.a
et je l'ai écrit ce makefile:
Q2 : Q2.o Agent.o Timing.o RandomDouble.o
g++ -Wall -g randomaelf64.a RandomDouble.o Q2.o Agent.o Timing.o -o Q2
Q2.o : Q2.cpp Agent.h Timing.h
g++ -Wall -g -c Q2.cpp -o Q2.o
Agent.o : Agent.cpp Agent.h Timing.h RandomDouble.h PrintQ2.h
g++ -Wall -g -c Agent.cpp -o Agent.o
RandomDouble.o : RandomDouble.cpp RandomDouble.h randoma.h
g++ -Wall -g -c RandomDouble.cpp -o RandomDouble.o
Timing.o : Timing.cpp Timing.h Agent.h
g++ -Wall -g -c Timing.cpp -o Timing.o
clear :
rm *.o Q2
À l'exception de la première commande, chaque g ++ .. commande fonctionne quand je le fais séparément. Même quand j'ajouter un main()
-RandomDouble.cpp
et exécuter:
g++ -Wall -g randomael64.a RandomDouble.cpp -o rand
il fonctionne. Donc je pense que peut-être le problème est avec mon makefile.
Quand je lance make
je reçois cette erreur:
RandomDouble.o: In function `InitSeed()':
/cs/stud/ofrenk33/CPP/ex1/RandomDouble.cpp:11: undefined reference to `MersenneRandomInit'
RandomDouble.o: In function `InitSeed(int)':
/cs/stud/ofrenk33/CPP/ex1/RandomDouble.cpp:16: undefined reference to `MersenneRandomInit'
RandomDouble.o: In function `GetRandomDouble()':
/cs/stud/ofrenk33/CPP/ex1/RandomDouble.cpp:21: undefined reference to `MersenneRandom'
Agent.o: In function `Agent::SendMessage()':
/cs/stud/ofrenk33/CPP/ex1/Agent.cpp:31: undefined reference to
...
make: *** [Q2] Error 1
je dois dire qu'il ya des fonctions déclarées dans randoma.h
qui sont dans la bibliothèque randomaelf64.a
.
Comment résoudre ce problème?
Alors qu'est-ce qui ne fonctionne pas exactement pour vous? Recevez-vous un message d'erreur? Si non, quels sont les symptômes de votre problème? –