一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Windows環(huán)境下為Android編譯OpenCV4.3

 怡紅公子0526 2021-12-23

踩了三四天的坑,今天終于順利跑通了,原來是toolchain的問題,外網(wǎng)的教程大多都是用opencv source里的toolchain,會導(dǎo)致各種奇奇怪怪的錯誤(std not a member of std,canot find iostram等等)

環(huán)境配置

本文編譯環(huán)境如下:

  1. 首先需要下載OpenCV 4.3.0 源碼,根據(jù)需求再加上OpenCV_contrib 4.3.0 源碼,解壓放到你記得住的文件夾

  2. 下載 cmake 3.18 圖方便直接選安裝包就行 cmake-3.18.0-rc1-win64-x64.msi

  3. 下載 Mingw(建議用installer傻瓜式安裝)選擇下列需要安裝的組件,右鍵選擇 Mark for Installation,之后選擇 Menu -> Installation -> Apply Changes

    安裝完后把mingw加入系統(tǒng)環(huán)境變量(win鍵搜索環(huán)境變量就有,編輯完后重啟系統(tǒng)生效)

  4. 下載 Android NDK 和 SDK,可以直接在官網(wǎng)下,但這里推薦直接在 Android Studio 里安排。打開AS任意一個項目,在工具欄選擇Tools -> SDK Maneger。

    打開后選擇SDK Tools,勾選右下角 Show Package Details,勾選一個NDK版本,Apply。

    SDK同理,安裝完后打開 Project Structure -> SKD Location 找到SDK路徑。

    同樣要寫到環(huán)境變量里


    NDK則在 Sdk\ndk\21.2.6472646,不寫進環(huán)境變量也沒問題,待會要在cmake里配置

  5. 安裝 JDK,最低需要 8,這里用 8u251 (過高版本可能不兼容)

    同樣需要配置環(huán)境變量

    還需加入

    對著打就行,重啟后可以用cmd測試是否配置成功

  6. 下載 ANT 1.10.7,放到你記得住的目錄

編譯配置

新建一個存放編譯結(jié)果的文件夾,比如我就放在 G:\opencv\android_build,解壓后源碼放在 G:\opencv\source

運行 cmake-gui (找不到就按win搜索)

將源碼和輸出地址填入這里

點擊 Add Entry,添加以下幾個屬性

  • ANDROID_NDK 類型為PATH,填入你的NDK路徑(AS下載的就在Sdk\ndk\21.2.6472646

  • ANDROID_SDK PATH,填入你的SDK路徑

  • ANDROID_ABI STRING,設(shè)置平臺,不填默認為 armeabi-v7a

  • ANDROID_NATIVE_API_LEVEL STRING,默認API為21

  • ANT_EXECUTABLE PATH,填入ANT路徑下的bin(用于java 封裝,便于 AS 導(dǎo)入module)

  • ANDROID_STL STRING,根據(jù)需求寫入c++_staticc++_shared(默認是gnustl_static)

這時候你可以看到一片紅,不用慌,這是代表新增,不是報錯。我們點擊下方的Configure。

選擇這個選項,Next。

這里需要配置toolchain路徑,注意了,不要用源碼包里的toolchain,用你自己的ndk目錄下的toolchain,不然可能導(dǎo)致一系列頭文件丟失的錯誤,血的教訓(xùn)=_=。

等待Configure完成,一切正常的話應(yīng)該是這樣

如果你需要的話,現(xiàn)在可以添加opencv-contrib模塊,搜索 extra,在 OPENCV_EXTRA_MODULES_PATH 添加路徑 ....../opencv_contrib-4.3.0/modules。(需要重新添加NDK路徑)

參數(shù)調(diào)整

以下參數(shù)根據(jù)自己需求調(diào)整

  • BUILD_ANDROID_PROJECTS 不需要示例項目可直接取消勾選

  • BUILD_ANDROID_EXAMPLES = OFF

  • BUILD_PERF_TESTS = OFF

  • BUILD_TESTS = OFF

  • BUILD_opencv_world = OFF (生成 .so 庫 libopencv_world.so,這是一個集合,不清楚和默認編譯的 libopencv_java3.so 有什么區(qū)別,默認不開啟,如果開啟的話不會復(fù)制 java 層函數(shù),也就是 cmake 的 gui 界面會顯示 Java wrappers: NO)

  • BUILD_SHARED_LIBS = OFF (如果 On 則只編譯 so 庫)

  • WITH_CUDA = OFF (CUDA 是 NVidia 推出的并行計算架構(gòu),編譯非安卓 SDK 時建議添加)

  • WITH_OPENCL = ON (因為我們編譯的是 android sdk,所以建議添加移動端的并行架構(gòu)支持)

  • WITH_OPENCL_SVM = ON (建議開啟共享虛擬內(nèi)存)

調(diào)整完后再次點擊Configure,完成后點擊Generate。

執(zhí)行編譯

完成后通過命令行工具 cmd (管理員身份) 進入 你的build文件夾,或者直接在 buid 文件夾右鍵選擇 Gitbash

輸入命令 mingw32-make.exe

如果沒有出現(xiàn)報錯,則再輸入 mingw32-make.exe install

編譯完成,打開AS的項目,在工具欄選擇File -> New -> Import_Module,把 build/install/sdk/java 導(dǎo)入即可(如果你有配置ANT的話)或者直接copy編譯出來的.a或者.so在AS里連接,之后可能會寫。

錯誤處理總結(jié)我之后在寫,可以把報錯貼到評論區(qū)或者私聊問我。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产精品久久香蕉国产线| 91精品国产综合久久不卡| 日韩毛片视频免费观看| 免费性欧美重口味黄色| 欧美大黄片在线免费观看| 欧美日韩亚洲国产av| 国产情侣激情在线对白| 少妇一区二区三区精品| 黄色激情视频中文字幕| 激情爱爱一区二区三区| 日韩欧美综合在线播放| 少妇人妻精品一区二区三区| 国产精品视频第一第二区| 99日韩在线视频精品免费| 欧美大粗爽一区二区三区 | 日韩人妻有码一区二区| 好吊日在线观看免费视频| 亚洲高清中文字幕一区二区三区| 黄片三级免费在线观看| 国产成人综合亚洲欧美日韩| 日韩精品一区二区三区av在线| 久久福利视频这里有精品| 国产又粗又深又猛又爽又黄| 国产在线视频好看不卡| 亚洲熟女精品一区二区成人| 人妻乱近亲奸中文字幕| 国产传媒精品视频一区| 成年午夜在线免费视频| 男女激情视频在线免费观看| 天海翼高清二区三区在线| 亚洲精品高清国产一线久久| 久久91精品国产亚洲| 国产精品欧美一级免费| 不卡免费成人日韩精品| 日韩欧美好看的剧情片免费| 日本妇女高清一区二区三区| 五月天综合网五月天综合网| 亚洲日本中文字幕视频在线观看 | 精品欧美在线观看国产| 粗暴蹂躏中文一区二区三区| 国产精品一区欧美二区|