我正在尝试编写一个定制的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扩展接口。