bonjour j'utilise un librairie .so codé en c++ dans une appli java avec jna et j'ai l'impression que le mot clé static situé dans ma librairie empêche son utilisation avec jna j'aimerais savoir si c'est un problème connut et si il y a un solution, en effet lors que je change le code de ma librairie pour enlever le static j'arrive a l'utiliser, or mon point d'entrée étant un singleton j'aimerais pouvoir garder le mot clé static typiquement voici un exemple de mon problème
mon fichier .h de ma librairie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
#ifndef UNTITLED1_LIBRARY_H
#define UNTITLED1_LIBRARY_H
 
class library {
private:
    char* h;
public:
    int hello();
};
 
extern "C" int hello(){
    library lib;
    return lib.hello();
}
 
#endif
mon fichier .cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
#include "library.h"
#include "ecrire.h"
 
#include <iostream>
 
int library::hello() {
    ecrire* e = new ecrire();
    e->ecrit();
    return 45;
}
ce code marche j'arrive a appeller la fonction qui me retourne 45 cependant si je rejoute le mot clé static devant ma variable j'obtient le message d'erreur suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Exception in thread "main" java.lang.UnsatisfiedLinkError: 
	Unable to load library '../logic/resources/calculator/libuntitled1.so': 
	Native library (linux-x86-64/../logic/resources/calculator/libuntitled1.so) not found in resource path ...
il n'est pas en entier mais je pense que l'essentiel et ici si vous voulez je peux le poster en entier mais il est très long