我正在尝试编写一个自定义的linux库(* .so),我已经完成了基础知识。
我想通过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()
有人可以告诉我为什么这不起作用吗?
问候Wurmi
答案 0 :(得分:0)
稀释。我找到了它!
我不得不从图书馆而不是从StdCallLibrary扩展界面。