Hallo Freunde,
ich könnte mal wieder etwas Hilfe gebrauchen. Ich versuche mich gerade daran mit SWIG ein JNI zu bauen und experimentiere damit herum. Ich habe auch meine Testumgebung mit den cpp Source Dateien und dem entsprechenden CMakeLists.txt angehängt.
Das kompilieren klappt soweit alles, auch wenn ich es im Moment 2 mal machen muss, weil die Reihenfolge der Targets im Target ALL nicht stimmt. Falls jemand auch da einen Tipp hat immer her damit.
Also die libs werden gebaut und ich kann sie auch laden, aber wenn ich in Java eine Klasse Character erzeugen will bekomme ich folgende Fehlermeldung.
Die swig-export Methode in der _wrap.cxx Datei sieht folgendermaßen aus ...
Und die CharMod.java hat folgenden Inhalt:
Schonmal vielen Dank im Vorraus
Gruß
Der Wolf
ich könnte mal wieder etwas Hilfe gebrauchen. Ich versuche mich gerade daran mit SWIG ein JNI zu bauen und experimentiere damit herum. Ich habe auch meine Testumgebung mit den cpp Source Dateien und dem entsprechenden CMakeLists.txt angehängt.
Das kompilieren klappt soweit alles, auch wenn ich es im Moment 2 mal machen muss, weil die Reihenfolge der Targets im Target ALL nicht stimmt. Falls jemand auch da einen Tipp hat immer her damit.
Also die libs werden gebaut und ich kann sie auch laden, aber wenn ich in Java eine Klasse Character erzeugen will bekomme ich folgende Fehlermeldung.
Java:
Exception in thread "main" java.lang.UnsatisfiedLinkError: CharModJNI.new_Character()J
at CharModJNI.new_Character(Native Method)
at Character.<init>(Character.java:38)
at Main.main(Main.java:7)
Java Result: 1
Die swig-export Methode in der _wrap.cxx Datei sieht folgendermaßen aus ...
C++:
SWIGEXPORT jlong JNICALL Java_CharModJNI_new_1Character(JNIEnv *jenv, jclass jcls) {
jlong jresult = 0 ;
Character *result = 0 ;
(void)jenv;
(void)jcls;
result = (Character *)new Character();
*(Character **)&jresult = result;
return jresult;
}
Und die CharMod.java hat folgenden Inhalt:
Java:
class CharModJNI {
public final static native long new_Character();
public final static native void delete_Character(long jarg1);
public final static native void Character_printValues(long jarg1, Character jarg1_);
}
Schonmal vielen Dank im Vorraus
Gruß
Der Wolf