Problème de librairies dynamiques

Résolu/Fermé
Messages postés
17
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
1 mars 2013
-
Messages postés
30564
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 janvier 2022
-
Bonjour,

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

Messages postés
30564
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 janvier 2022
7 274
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