线程“main”中的异常java.lang.UnsatisfiedLinkError:未定义的符号:Test

时间:2015-10-19 09:43:07

标签: java c++ linux jna shared-objects

我正在尝试编写一个自定义的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

1 个答案:

答案 0 :(得分:0)

稀释。我找到了它!

我不得不从图书馆而不是从StdCallLibrary扩展界面。