2017-03-27 88 views
0

真的在這裏苦苦掙扎。基本上,我有一大堆使用opencv並能正常工作的iOS項目的C++文件。從Android的原生C++文件調用本機opencv

現在,我試圖移植到Android。所以我需要做的是將我已經加入Android項目的現有C++文件作爲共享庫,並且仍然可以調用本地opencv C++方法。這可能嗎?

我知道java實現只是一堆關於C++代碼的包裝,但我似乎無法找到一種方法從項目中的其他C++文件調用本地C++代碼。任何幫助表示讚賞。由於

史蒂夫

回答

0

您是否嘗試過使用Android NDK (Native Development Kit)?它允許你在Android中使用c/C++代碼。但是你不能簡單地將庫導入你的應用程序,你需要使用NDK(.SO文件)來構建它,它會生成腳本作爲代碼的鏈接器。

0

如果我正確地理解了你,你需要在本地層(而不是通過Java API)接口到opencv。您應該能夠抓取目標平臺的.so庫以及必要的頭文件,並使用NDK構建它。

如果您的應用程序項目沒有JNI的一部分,只需複製對應的OpenCV的本地庫從/ SDK /本地/庫/項目目錄到文件夾庫/。

source

有很多方法來建立一個NDK版本。 CMake的更新版本(> = 3.7.2)使交叉編譯相對來說不會太痛苦。見this page