Problème de bibliothèque .so
Bonsoir.
Je me prends la tête sur un truc tout simple depuis 3 jours : je voudrais faire une bibliothèque .so et m'en servir.
J'ai ce Makefile :
Code:
1 2 3 4 5 6 7 8
| lib: biblio.cc biblio.h
g++ -fPIC -c biblio.cc $(CXXFLAGS)
g++ -shared -o libtest.so biblio.o
rm *.o
main: lib main.cc
g++ -c $(CXXFLAGS) main.cc
g++ -L. -ltest -o main main.o
rm *.o |
Et j'ai ces 3 fichiers :
biblio.h
Code:
1 2 3 4 5 6 7 8 9
| #ifndef _TEST_H_
#define _TEST_H_
class Test {
public:
void test();
};
#endif |
biblio.cc
Code:
1 2 3 4 5 6
| #include "biblio.h"
#include <stdio.h>
void Test::test() {
printf("bouh\n");
} |
main.cc
Code:
1 2 3 4 5 6 7
| #include "biblio.h"
int main() {
Test *t=new Test();
t->test();
delete t;
} |
Quand je fais make lib tout va bien mais le make main me renvoie :
Code:
1 2 3 4 5 6
| g++ -c -Wall main.cc
g++ -L. -ltest -o main main.o
main.o: In function main:
main.cc:(.text+0x1e): undefined reference to Test::test()
collect2: error: ld returned 1 exit status
make: *** [main] Erreur 1 |
J'ai tenté 50 versions différentes de compilation, aucune ne passe.
Si quelqu'un pouvait m'aider... Merci d'avance !
@+
Rémi