J'ai deux fichiers de bibliothèque 3ème partie appelée libA.a et libB.ag ++, ld et JNI - problème reliant
Ils sont construits avec g ++.
Maintenant, j'ai besoin de faire des appels de fonction à partir de Java en utilisant JNI.
J'ai un fichier wrapper JNI appelé wrapper.cpp et j'ai essayé de créer un fichier library.so qui peut être chargé dans mon programme java et faire des appels de fonction.
J'ai d'abord compilé wrapper.cpp en utilisant g ++ et essayé de lier tous les fichiers objets en utilisant ld.
Voici les commandes que j'ai utilisées.
%g++ wrapper.cpp -I /usr/java/include/ -I /usr/java/include/solaris/ libA.a libB.a -L /lib/*.so -c
Cela a créé wrapper.o
%ld -L /usr/java/lib/ -L /lib/ -b wrapper.o libA.a libB.a -o wrapper.so -m
Cela me donne l'erreur suivante:
Undefined first referenced
symbol in file
_ZNKSsixEj wrapper.o
_ZNSt8ios_base4InitD1Ev wrapper.o
_ZNSt8ios_base4InitC1Ev wrapper.o
__gxx_personality_v0 wrapper.o
_ZNKSs4sizeEv wrapper.o
ld: fatal: Symbol referencing errors. No output written to wrapper.so
recherche sur Google ces erreurs ne vous aide pas :(
Quelqu'un peut-il me dire s'il vous plaît Où est-ce que je vais mal?
Note: J'utilise g ++ 3.4.3 sur SunOS 5.10
A travaillé. Merci :) – JohnH