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 :
(pareil pour lib2.a)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
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 :
Erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 App : $(OBJ) g++ -o app $^ lib2.a
Alors ma question principale est :lib2_fichier.cpp.text+0x48): référence indéfinie vers « lib2::ns::MaClasse::MaFonction(bool) »
- 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
Partager