ubuntu 20.04 aarch64 平台交叉编译 opencv 静态库

这篇具有很好参考价值的文章主要介绍了ubuntu 20.04 aarch64 平台交叉编译 opencv 静态库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编译环境

  • 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,然后进行各个特性或者第三方库的开关配置

ubuntu 20.04 aarch64 平台交叉编译 opencv 静态库

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 目录

ubuntu 20.04 aarch64 平台交叉编译 opencv 静态库

小结

  • 可以配置 cmake,开关各个需要的选项,包括第三方库等

  • 可以生成静态的 opencv 库,不过使用静态库,静态连接,这样应用程序体积会比较大文章来源地址https://www.toymoban.com/news/detail-482085.html

到了这里,关于ubuntu 20.04 aarch64 平台交叉编译 opencv 静态库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04 交叉编译Paddle-OCR

    参考链接: https://blog.csdn.net/sz76211822/article/details/130466597?spm=1001.2014.3001.5501 参考链接: https://blog.csdn.net/sz76211822/article/details/130461683?spm=1001.2014.3001.5501 1.将Paddle-Lite编译好的cxx文件夹放置到PaddleOCR/deploy/lite目录下 2.将编译好的opencv文件夹放置到cxx目录下 3.除了拷贝过来的源代码

    2024年02月02日
    浏览(34)
  • 交叉编译工具链arm-linux-gnueabihf的安装-ubuntu 20.04

    http://t.csdn.cn/ZbjFX 建议直接在.bashrc文件作修改 ,修改方式相同 ( vi :视自己的编辑器而定) 因为我在修改profile文件后,环境变量生效,但是命令行的用户名等颜色高亮显示会消失;并且重启终端后,又需要再source一下profile。 但是将环境变量添加至.bashrc则不会出现这两个问题

    2024年02月11日
    浏览(30)
  • libreoffice 7 ( arm64 ubuntu20.04 环境) 源码编译

    基础环境 cpu os docker Dockerfile

    2024年02月13日
    浏览(45)
  • RK3588移植-opencv交叉编译aarch64

    注意:本文中的所有配置相关路径都与当前安装的路径有关,需要根据自己的环境进行自行修改!!! OPENCV如果需要ffmpeg视频模块的话,不建议用cmake-gui,有很多bug。建议在ffmpeg相关依赖配置好后使用“问题:”中的cmake命令。 在做yolov5移植rk3588时,由于RKNPU2的example中open

    2024年02月06日
    浏览(33)
  • Ubuntu 20.04源码编译安装OpenCV 4.7.0

    目录 前言 1--下载OpenCV 4.7.0 2--编译安装OpenCV 4.7.0 3--测试 3-1--查看安装的版本 3-2--基于VSCode和CMake测试项目 4--报错解决(重点!) 4-1--OpenCV与FFmpeg不兼容 4-2--LIBTIFF报错 4-3--系统与Anaconda的库lib冲突 4-4--测试时CMake的find_package报错         建议先看第4节相关报错及解决方法,再

    2024年01月16日
    浏览(51)
  • 交叉编译----宿主机x86 ubuntu 64位-目标机ARMv8 aarch64

    1.交叉编译是什么,为什么要交叉编译 编译:在一个平台上生成在该平台上的可执行代码 交叉编译:在一个平台上生成在另一个平台上的可执行代码 交叉编译的例子:如51单片机的可执行代码(hex文件)是在集成环境keil上面编译完成的,我们只需要将编译好的可执行代码下

    2024年02月15日
    浏览(30)
  • 【已解决】Ubuntu 20.04 编译OpenCV 动态链接库指向版本不一致导致出错

    问题:编译OpenCV 4.8.1, 显示出错: /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_type_uint32@LIBFFI_BASE_7.0\\\' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_type_sint32@LIBFFI_BASE_7.0\\\' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to

    2024年02月04日
    浏览(27)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

    苦辣酸甜时光八载,春夏秋冬志此一生 Qt简介: Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系统有很多,例如通用

    2024年01月23日
    浏览(38)
  • Ubuntu20.04 编译 gstreamer 支持gpu硬编解 opencv-python同支持gst

    Gstreamer是一个支持Windows,Linux,Android, iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。 下图

    2024年02月11日
    浏览(70)
  • 带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)

    带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库,编译出的库适合香橙派,这时候交叉编译可执行程序的平台和链接库的格式也是正确的 ,然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置,但是现在还没有学习过,后面学了补上 此时如果把wiringPi库拿到Ubuntu上进

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包