G++ et makefile, problème de dépendances
Bonjour à tous,
Me voici dans cette situation :
Je possède deux bibliothèques, lib1.a et lib2.a. lib2.a utilise liba.a.
Les deux compiles correctement :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
LIB=lib1
OBJ= $(SRC:.cpp=.o)
all : $(LIB)
lib1 : $(OBJ)
ar rcs $(LIB).a $^ $(LDFLAGS)
$(OBJ): %.o: %.cpp
@$(CC) -o $@ -c $< $(CFLAGS) |
(pareil pour lib2.a)
En revanche lorsque j'essaye de compiler un exécutable lié avec lib2.a, j'ai des erreurs m'indiquant que lib2.a possède des symboles indéfinis qui sont présents dans lib1.a.
En suivant le même principe pour le makefile :
Code:
1 2 3
|
App : $(OBJ)
g++ -o app $^ lib2.a |
Erreur :
Citation:
lib2_fichier.cpp:(.text+0x48): référence indéfinie vers « lib2::ns::MaClasse::MaFonction(bool) »
Alors ma question principale est :
- Est-ce que la dépendance de lib2.a envers lib1.a doit se gérer au niveau de la construction de lib2.a ou celle de "app" ?
Ensuite si vous pouviez me donner une piste pour faire avancer les choses, ça serait bien sympa ;)
Merci par avance,
A bientôt