Я пытаюсь написать собственную библиотеку Linux (*. Итак), и я застрял уже в основах.
Я хотел бы использовать эту библиотеку через JNA. Проблема в том, что когда Eclipse пытается запустить метод Test()
это сообщение об ошибке появляется Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'Test': /path/to/libexports.so undefined symbol: Test
Вот код lib:
#ifdef EXPORTS
#define NATIVE_API __declspec(dllexport)
#else
#define NATIVE_API __declspec(dllimport)
#endif
extern "C" {
NATIVE_API int __stdcall Test(){
cout << "hello!";
}
}
Это код Java:
public interface IJnaTest extends StdCallLibrary{
IJnaTest instance = (IJnaTest) Native.loadLibrary("exports", IJnaTest.class);
public int Test();
}
Звонок в основном:
IJnaTest.instance.Test()
Кто-нибудь может сказать мне, почему это не работает?
С уважением, Вурми
Ааа. Я нашел это!
Мне пришлось расширить интерфейс только из библиотеки, а не из StdCallLibrary.
Других решений пока нет …