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

10-04 10:14