2015-04-17 74 views
0

我正在开发java中的应用程序,以便与使用x-plane sdk的模拟器X-Plane通信,它具有C语言。我下载了SDK并包含在.libm .h和.cpp中文件。JNI加载库

我在互联网上搜索了解如何在我的程序中加载这些库,并且我找到了Java本地接口,因此我开始阅读有关该示例的示例,但我只找到同样的情况下,如何创建C库。

我的问题是,我已经有头文件和库,而不是.dll。

我怎样才能使负载不装箱自己的图书馆

我知道problably是一个非常简单的方法,但我不知道,我很欣赏的努力来回答我。

+1

听起来像是你需要编译CPP源代码。 –

+0

您需要为该C库编写JNI包装。 – douyw

回答

0

如果您不能重新编译源代码转换成一个动态库(如.so文件),另一个黑客,你可以做的是做一个简单的.c包装,在静态库静态链接,并编译成动态库。包装器可以将所需的调用“转发”到静态库中,以确保从静态库中需要的东西包含在二进制文件中。

Here就是这样的一个例子(其中该答案的命令行中的.o文件将被您的包装所取代)。