2015-04-17 68 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文件將被您的包裝所取代)。