編譯環(huán)境
-
win10 64 位
-
VMware Workstation Pro 16 虛擬機(jī)
-
虛擬機(jī)安裝 ubuntu 20.04
-
opencv 版本: 來自 github 當(dāng)前最新 4.7
目的
- 交叉編譯 opencv 生成靜態(tài)庫(.a),用于 嵌入式 aarch64 平臺(tái)。
環(huán)境配置方法
- 參考上一篇 ubuntu 20.04 aarch64 平臺(tái)交叉編譯 opencv
生成靜態(tài)庫
- 默認(rèn)會(huì)生成 動(dòng)態(tài)庫(so),可以通過cmake 配置
-DBUILD_SHARED_LIBS=OFF
關(guān)閉動(dòng)態(tài)庫生成,這樣就可以生成靜態(tài)庫了
cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/aarch64-musl.toolchain.cmake .. -DCMAKE_CXX_FLAGS="-march=armv8-a --static" -DCMAKE_C_FLAGS="-march=armv8-a --static" -DBUILD_SHARED_LIBS=OFF
其他
-
如果感覺 cmake 的命令太長,可以把各個(gè)配置放進(jìn)
platforms/linux/aarch64-musl.toolchain.cmake
里面,這樣 cmake 命令就會(huì)很精簡 -
打開
vim platforms/linux/aarch64-musl.toolchain.cmake
,然后進(jìn)行各個(gè)特性或者第三方庫的開關(guān)配置
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
set(GNU_MACHINE "aarch64-linux-musleabi" CACHE STRING "GNU compiler triple")
set(CMAKE_BUILD_TYPE "Release")
set(WITH_CAROTENE OFF)
set(WITH_ITT OFF)
set(WITH_OPENCL OFF)
set(WITH_ADE OFF)
include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")
-
set(CMAKE_BUILD_TYPE "Release")
編譯 Release 版本 -
set(WITH_ITT OFF)
關(guān)閉了 itt 相關(guān) -
set(WITH_CAROTENE OFF)
關(guān)閉了 第三方庫 CAROTENE -
set(WITH_OPENCL OFF)
關(guān)閉了 OPENCL -
set(WITH_ADE OFF)
關(guān)閉 ADE
編譯
-
make,可以 make -j12 等多線程編譯,大大加快編譯速度,當(dāng)然編譯的電腦硬件配置要高一些,多核 大內(nèi)存
-
make install,可以把生成的 opencv 庫存放到 當(dāng)前的目錄
build_a/install
目錄下,由于是交叉編譯,所以需要額外注意 安裝路徑,不要安裝到 系統(tǒng)的目錄下。
查看編譯產(chǎn)物
- make 編譯完成后,執(zhí)行
make install
,會(huì)存放到指定路徑,默認(rèn)不配做,會(huì)在當(dāng)前的build路徑下,如build_a/install
目錄
小結(jié)
-
可以配置 cmake,開關(guān)各個(gè)需要的選項(xiàng),包括第三方庫等文章來源:http://www.zghlxwxcb.cn/news/detail-482085.html
-
可以生成靜態(tài)的 opencv 庫,不過使用靜態(tài)庫,靜態(tài)連接,這樣應(yīng)用程序體積會(huì)比較大文章來源地址http://www.zghlxwxcb.cn/news/detail-482085.html
到了這里,關(guān)于ubuntu 20.04 aarch64 平臺(tái)交叉編譯 opencv 靜態(tài)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!