注:博客中有些图片部分为了省事,借用了别人博客的图片,相关部分注意事项相同。若有侵权,请联系删除!

一,Opencv3.2移植到arm

Opencv3.2

ubuntu16.04

目标板:飞凌嵌入式iMx6-ul

前一:把opencv源码,/modules/highgui/src/windows.cpp  文件第583行和654行注释掉!!!非常重要!!!

  583 行: CV_NO_GUI_ERROR("cvshowImage")

  654行:CV_NO_GUI_ERROR("cvWaitKey")  

不然程序运行时会提示如下让先安装gtk+2.x之类的错误。应该是没有显示屏显示的原因。

  “OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow”

1,配置交叉编译环境,见imx6-ul软件手册

2,在源码目录下打开终端  /cmake-gui      // 启动cmake

在cmake界面中进行配置

第一步:

第二步:

第三步:

1),下图为网上流传非常广泛的配置方法:在这个配置中填写的目标系统的名称会导致opencv库中V4L无法使用(因为在本次工程中没有使用opencv的V4L驱动库,可以忽略),应该为“Linux”

2),注意编译器的选择为交叉编译器,与下图中的区别。

3),target root 注意事项与下图相同

第四步:

1),建议使用静态库编译,选择动态库编译需要把动态库拷贝到arm板中,比较麻烦。

第五步:

4.按照上述配置完成后,进入编译文件目录(进入自己配置的目录)

然后执行 make 进行编译

鉴于网上的参考教程,大多数人这里会报错,这里将错误总结如下:

(1)报错:

Linking CXX executable ../../bin/opencv_test_calib3d

../../lib/libopencv_core.so: undefined reference to`pthread_key_create'

../../lib/libopencv_core.so: undefined reference to`pthread_getspecific'

....................

collect2: ld returned 1 exit status

make[2]: *** [bin/opencv_test_calib3d] Error 1

make[1]: ***[modules/calib3d/CMakeFiles/opencv_test_calib3d.dir/all] Error 2

make: *** [all] Error 2

或者

报错:undefined reference  to  “dlopen”

undefined  reference  to  “dlysm”

解决方案:修改上图中“编译文件目录”目录下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,保险起见,加上-lpthread -lrt -ldl,如下图:

5.报错按照上述方法解决,再make后,执行sudo make install ,此时编译好的库就按照在你指定的目录下了.

NOTE: 如果sudo make install 出现 Cmakeerror at apps/annotation/cmake_install.cmake:42(FILE):之类的错误,直接打开文文件 apps/annotation/cmake_install.cmake把42行注释掉。

(一共有3个类似错误,对应三个文件,我这是都在第42行,都注释掉)

6.进入上述的安装库,若没有取消BUILD_SHARED_LI选项,则生产的是.so后缀的库文件,将这些库文件拷贝到板子的/lib目录下。

二,工程代码编译

7.在Ubuntu上编译的时候,建议使用CMakeList.txt 通过cmake编译

因为需要交叉编译,配置方法如下:

配置完makefile之后,直接make生成可执行文件,如果opencv为静态库,可执行文件拷贝至板子中即可运行。

8.CMakeLists.txt编译方式;

1), Linux下undefined reference to ‘pthread_create’’pthread _join’问题

在自己的工程目录下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS,加上-lpthread -lrt –ldl。

9,若电脑中装有多个版本的opencv,使用指定的OPENCV版本

在CMakeLists.txt文件中设置opencv文件夹路径

在cmake-gui中指定路径

Opencv3.2移植到arm板相关推荐

  1. 交叉编译并移植opencv3.0.0到arm板

    原文:http://blog.csdn.net/gatieme/article/details/49080355 项目需求,交叉编译OpenCV,并移植到arm中. 在opencv2.0以上的版本编译 ...

  2. wxX11移植到arm板上

    [原]移植wxX11到开发板上 2012-5-18阅读467 评论0 最近几天由于工作安排,要将wxX11程序移植到arm开发板上.一连工作了好几天,终于可以在板子上显示出一个"X" ...

  3. 最新版ser2net移植到ARM板上,交叉编译

    这个是ser2net源码http://sourceforge.net/projects/ser2net/files/latest/download ser2net是我在玩openwrt时接触的,当时用 ...

  4. wxX11移植到arm板上(序)

    在将wxX11里在程序在arm板子上运行之后,我们发现那上面的程序运行的时候没有边框和标题栏.于是我们就找这方面的解决方法.首先在tinyx里找到了一个窗口管理器twm,当把twm交叉编译完以后,拷到 ...

  5. QT程序到arm板(s5pv210)的移植之旅

    前记: 由于毕设的原因,将来需要移植QT程序到arm板子运行,故有此文. 看博客寻资料,看到一位作者写道:知识来源于互联网,必将回报互联网.赞. 介于从陌生到熟悉的折腾,故将移植过程记录,发文,以己省 ...

  6. python交叉编译_交叉编译Python3.6.2,使用海思arm-hisiv200-linux-gcc,移植到arm开发板上...

    最近在学习Python,感觉使用Python可以快速的写出程序,比之前使用的C语言快多了,能省出很多时间.多学一点知识有更多的选择.本职工作是嵌入式开发,学习了Python后想移植到开发板上,尝试嵌入 ...

  7. 移植ethtool至ARM板

    移植前需要理解的概念 『交叉编译器』:想要使程序能够在ARM板上运行,需要使用交叉编译器编译程序,如 arm-hisiv400-linux-gcc 『动态链接与静态链接的区别』:ARM板上相关库文件不 ...

  8. Openssl移植到ARM开发板

    Openssl移植到ARM开发板 openssl源码下载 源码编译配置 使用生成的库文件 openssl源码下载 openssl源码可以在官网下载:https://www.openssl.org/so ...

  9. apache arm 交叉编译_Apache 2移植到Arm开发板的过程整理——如何交叉编译Apache 2

    话说要在arm开发板的linux系统中运行apache服务器,需要在pc linux系统中交叉编译Apache源码,在网上参考了很多资料都是1.3版本的,最后终于找到apache 2移植到arm开发板 ...

最新文章

  1. 调用dubbo接口出现多次
  2. B2c商城图片尺寸设定研究 尺寸应该多大合适
  3. How to mannuly configure vmtools in VM-Ware?
  4. Leaflet中添加的不同图层样式图标
  5. java.lang.NoSuchFieldError: EMPTY_ORDERED_ITERATOR起因及解决办法
  6. 小结三种控制路由发布的方法
  7. 关于估时间的一些感想
  8. 蓝桥杯 ALGO-78 算法训练 确定元音字母位置
  9. 2.数据中台 --- 什么是数据中台
  10. 关闭迅雷更新到新版本的提示
  11. Mirth Connect 第一章 快速安装
  12. 【渝粤题库】广东开放大学 商务网站建设与维护 形成性考核
  13. Mac上 安装Drozer 并使用
  14. Python 入门-Task1 变量、运算符、数据类型及位运算
  15. 计算机输入d为啥返回桌面,按D键空格键就退出输入回到桌面
  16. 人工智能时代,教育革命迫在眉睫
  17. 网络安全规范(范例)
  18. 拨乱反正-重构是门艺术活
  19. 李飞飞团队新研究登Nature子刊!实现可信 AI,数据的设计、完善、评估是关键!...
  20. leetcode 分治 beautiful array

热门文章

  1. 计算机作用对象失败怎么办,虚拟电脑控制台严重错误—获取VirtualBox COM 对象失败的解决办法...
  2. 基于FPGA的遥控数字时钟设计
  3. react-native map函数遍历数据及其布局
  4. 利用python分析电商_Python电商数据分析实战
  5. 一文讲解灰光模块和彩光模块
  6. JavaScript-ES7~ES8新特性使用教程
  7. 计算机学识水平自我评价,计算机毕业自我鉴定范文
  8. ZigBee设备OTA过程研究及优化
  9. 统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum
  10. windows_server_2008_远程桌面(授权、普通用户登录多用户登录