编译环境
- win10 64 位
- VMware Workstation Pro 16 虚拟机
- 虚拟机安装 ubuntu 20.04
- opencv 版本: 来自 github 当前最新 4.7
目的
- 交叉编译 opencv 生成静态库(.a),用于 嵌入式 aarch64 平台。
环境配置方法
- 参考上一篇 ubuntu 20.04 aarch64 平台交叉编译 opencv
生成静态库
- 默认会生成 动态库(so),可以通过cmake 配置
-DBUILD_SHARED_LIBS=OFF
关闭动态库生成,这样就可以生成静态库了
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 的命令太长,可以把各个配置放进
platforms/linux/aarch64-musl.toolchain.cmake
里面,这样 cmake 命令就会很精简 - 打开
vim platforms/linux/aarch64-musl.toolchain.cmake
,然后进行各个特性或者第三方库的开关配置
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)
关闭了 itt 相关 -
set(WITH_CAROTENE OFF)
关闭了 第三方库 CAROTENE -
set(WITH_OPENCL OFF)
关闭了 OPENCL -
set(WITH_ADE OFF)
关闭 ADE
编译
- make,可以 make -j12 等多线程编译,大大加快编译速度,当然编译的电脑硬件配置要高一些,多核 大内存
- make install,可以把生成的 opencv 库存放到 当前的目录
build_a/install
目录下,由于是交叉编译,所以需要额外注意 安装路径,不要安装到 系统的目录下。
查看编译产物
- make 编译完成后,执行
make install
,会存放到指定路径,默认不配做,会在当前的build路径下,如build_a/install
目录
小结
- 可以配置 cmake,开关各个需要的选项,包括第三方库等
- 可以生成静态的 opencv 库,不过使用静态库,静态连接,这样应用程序体积会比较大
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 什么是 SAP UI5 Application Index
SAP UI5 Application Index是一个集成在SAP Fiori Launchpad 中的应用程序索引。它提供了一个集中式的位置,用于展示和访问已安装的SAP UI5应用程序。 在SAP Fiori Launchpad的主页上,用户可以看到一个…