Problème de librairies dynamiques
Résolu
Bonjour,
J'ai un problème avec des librairie que j'ai créé.
J'ai créé ces librairie dans un makefile avec :
Ce qui me retourne des fichiers .so
Ensuite, dans un autre dossier, je veux utiliser mes librairie pour compiler mon programme :
avec :
et OBJ pointe vers l'objet généré pour mon exécutable.
Lorsque je fais
la compilation me dis que certaines méthodes de ma classe n'ont pas de références définit.
Merci de votre aide par avance.
J'ai un problème avec des librairie que j'ai créé.
J'ai créé ces librairie dans un makefile avec :
$(LIBRARY):$(OBJ) @echo "-> Building library : " $@ @$(CXX) -shared -o $@ $<
Ce qui me retourne des fichiers .so
Ensuite, dans un autre dossier, je veux utiliser mes librairie pour compiler mon programme :
LIBS = -L../../SimuTools/lib -lDriftFile -lObservable
$(EXE):$(OBJ)
$(CXX) ${LIBS} $(OBJ) -o $(EXE)
avec :
CXXFLAGS = -g -Wall CXX = g++-4.4 CXXFLAGS += -I../../SimuTools/include
et OBJ pointe vers l'objet généré pour mon exécutable.
Lorsque je fais
make
la compilation me dis que certaines méthodes de ma classe n'ont pas de références définit.
Merci de votre aide par avance.
1 réponse
-
Sans plus d'information c'est difficile de répondre, mais en gros, cela veut dire qu'à la compilation, gcc a trouvé tous les headers. Par contre au moment du linkage, il lui manque soit des ".o" soit des ".so".
Normalement si ton projet implique libtoto.so libtata.so main.c (qui contient le main) file1.c et file2.c la compilation ressemble à ceci
g++ -c file1.c g++ -c file2.c g++ main.c file1.o file2.o -ltoto -ltata
Bonne chance