Bonjours à tous.
Voilà mon probléme, j'ai un morceau de code en C et je souhaiterai en faire un librairie type libxxx.so pour ensuite pouvoir la charger en java grâce à System.loadLibrary. J'arrive à faire cette librairie mais lorsque j'exécute mon code java j'ai l'erreur suivante :
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/libspam.so: /usr/lib/libspam.so: undefined symbol: _ZN9SeqBitmap9_memory32E
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1511)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at extracap.spac.traitement.CategorieFeuille.<clinit>(CategorieFeuille.java:92)
at extracap.Test.main(Test.java:43)
d'aprés ce que j'ai pu lire sur Internet, c du coté de la compilation de la librairie qu'il faut que je regarde mais j'ai essayer plein de truc et rien ne veut fonctionner. Je vous poste donc ici mon Makefile :
libspam.so: spam_so.o Bitmap4.o Bitmap8.o Bitmap16.o Bitmap32.o Bitmap64.o FileInput.o Spam.o
g++ -o libspam.so -shared spam_so.o Bitmap4.o Bitmap8.o Bitmap16.o Bitmap32.o Bitmap64.o FileInput.o Spam.o
spam_so.o: spam_so.cpp
g++ -fPIC -D_REENTRANT -I/usr/java/j2sdk1.4.2_05/include -I/usr/java/j2sdk1.4.2_05/include/linux -c spam_so.cpp
Bitmap4.o: Bitmap4.cpp
g++ -fPIC -c Bitmap4.cpp
Bitmap8.o: Bitmap8.cpp
g++ -fPIC -c Bitmap8.cpp
Bitmap16.o: Bitmap16.cpp
g++ -fPIC -c Bitmap16.cpp
Bitmap32.o: Bitmap32.cpp
g++ -fPIC -c Bitmap32.cpp
Bitmap64.o: Bitmap64.cpp
g++ -fPIC -c Bitmap64.cpp
FileInput.o: FileInput.cpp
g++ -fPIC -c FileInput.cpp
SeqBitmap.o: SeqBitmap.cpp
g++ -fPIC -c SeqBitmap.cpp
Spam.o: Spam.cpp
g++ -fPIC -c Spam.cpp
Si vous avez une idée sur la question ou si vous avez besoin de plus d'infos...ben je vous écoute.
Merci