J'essaie de compiler une bibliothèque Java qui utilise JNI. Lorsque je démarre le programme, je vois un crash avec UnsatisfiedLinkError, qui indique qu'une méthode particulière n'a pas pu être trouvée dans la DLL. En y regardant de plus près, j'ai découvert que g ++, que j'utilise pour la compilation et la liaison, a tronqué mes noms de méthodes en ajoutant des suffixes tels que "@ 8" ou "@ 16" aux noms des méthodes. Est-ce que quelqu'un sait les bonnes options du compilateur pour désactiver le nom mangling? Merci d'avance!g ++: Comment démonter les symboles exportés
EDIT: J'utilise MinGW via le plugin Eclipse + CDT.
Merci beaucoup! Cela a finalement résolu mon problème. Avec ce paramètre, il y a une version décorée et non décorée pour chaque méthode dans la DLL, et les programmes Java fonctionnent: D –
@Mavrik merci de remplir cela, je connaissais le problème mais pas la solution. – bmargulies