Ich versuche, eine Java-Bibliothek zu kompilieren, die JNI verwendet. Wenn ich das Programm starte, sehe ich einen Absturz mit einem UnatisfiedLinkError, der besagt, dass eine bestimmte Methode in der DLL nicht gefunden wurde.g ++: So entmagnetisieren exportierte Symbole
Bei näherer Betrachtung habe ich herausgefunden, dass g ++, das ich zum Kompilieren und Verknüpfen verwendet, meine Methodennamen durch Hinzufügen von Suffixen wie "@ 8" oder "@ 16" zu den Methodennamen verändert. Kennt jemand die richtigen Compiler-Optionen, um den Namen Mangling zu deaktivieren? Danke im Voraus!
EDIT: Ich benutze MinGW durch Eclipse + CDT-Plugin.
Vielen Dank! Das hat mein Problem endlich gelöst. Mit diesem Parameter gibt es eine dekorierte und eine undekorierte Version für jede Methode in der DLL, und die Java-Programme funktionieren: D –
@Mavrik Vielen Dank für das Ausfüllen, wusste ich das Problem, aber nicht die Lösung. – bmargulies