OpenCV交叉编译

3 篇文章 0 订阅
3 篇文章 0 订阅

参考几篇博客
1.交叉编译opencv2.31与移植至arm9:
http://blog.csdn.net/embeddedman/article/details/7416934
2.编译OpenCV:
http://blog.lehu.shu.edu.cn/byman/A264747.html
3.交叉编译OpenCV2.3.1:
http://my.oschina.net/elinuxer/blog/11887
4.http://wenku.baidu.com/link?url=mlFQKW8SlxB-WedCScEKjAw5d9WHBp-EBYB-5MvYI7GAcA_81zmaA2eopZ380wykS8J5ZI0kgu1QaSOfk_HrxxD8Uov2Y0pk9AsL_pbOWAa
5.http://blog.sina.com.cn/s/blog_92942dba0101d1wj.html
6.http://www.360doc.com/content/15/0210/16/5268588_447722872.shtml
7.http://wenku.baidu.com/link?url=xE6PCnw_4stAcDWafKUa_Qq5A56Cvh5_n3Alfsrqy4VAogoaFOO6YNKIYyHQ32euWqcJSB_nrHbRmt1Z-Y7uI0VwETV1JmZZ8VZwgTtI_oa

需要注意的点:

  • 首先你已经安装了交叉编译工具链,比如说自己安装了gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux工具

  • 然后cmake用的是cmake-3.4.1-Linux-i386.tar.gz版本,其实这个只需在linux中解压即可,需要用cmake-gui时,只需到bin目录下,sudo ./cmake-gui即可

  • 打开cmake-gui之后,选择要编译的源文件和编译之后存放的路径
    这里写图片描述

  • 然后配置编译工具
    这里写图片描述

这里写图片描述

这里的2.4.10是OpenCV的版本号;(不过后来感觉这里应该填目标机,即arm的Linux版本号)
(一说Processor这里可以填上arm)上面这两个括号中的内容都没有验证^-^
Compilers选项下的C和C++分别对应安装的gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux路径下的arm-linux-gnueabihf-gccarm-linux-gnueabihf-g++(在bin目录中)
Target Root选项为gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux的安装目录,不用带/bin

  • 点击finish之后会出现第一次Configure的结果,可能出现各种错误,比如说ERROR in configuration process,project files may be invalid 这个错误可以无视掉,直接点击OK
  • 然后就是修改红色区域的部分值,去掉某些值: WITH_OPENCL、WITH_TIFF 、BUILD_OPENEXR、WITH_OPENEXR、WITH_CUDA
    并修改CMAKE_INSTALL_PREFIX的值为自己想要的路径,这里我设置为了/usr/local/opencv-arm/
  • (不知道这步在这里是否是必须的)然后打开/home/sun/opencv-arm-linux目录下的CMakeCache.txt文件修改里边的两个值:
    CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt -ldl
    CMAKE_INSTALL_PREFIX:PATH= XXXXXX(安装路径) 见上
  • 点击Configure,如果没错,只是有一些红色部分,不用管这些,直接点击 Generate即可
  • 生成CMakefile之后,还要修改一波CMakeCache.txt
    打开/home/sun/opencv-arm-linux目录下的CMakeCache.txt文件
    如果CMAKE_EXE_LINKER_FLAGS为空,加上-lpthread -lrt -ldl
    如果CMAKE_INSTALL_PREFIX:PATH为空,添加上相应的路径,见上
  • 然后就可以执行sudo make,注意这里要在编译生成文件目录下操作,这里我的路径为/home/sun/opencv-arm-linux
  • 最后sudo make install

配置编译环境
这里先做一个说明:
我的编译文件存放目录:/home/sun/opencv-arm-linux
编译生成的头文件存放目录:(即CMAKE_INSTALL_PREFIX的值)/usr/local/opencv-arm

  • 首先,你可以打开/usr/local/opencv-arm/lib/pkgconfig目录下的opencv.pc文件,看一下里边的参数
    这里写图片描述

  • 然后编辑库连接配置文件

cd /etc/ld.so.conf.d
vim opencv.conf

添加如下内容:  /usr/local/opencv-arm/lib

然后 ldconfig使生效

  • 添加环境变量
vim /etc/bash.bashrc    #如果是centos系统,直接vim /etc/bashrc即可
在最后添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-arm/lib/pkgconfig
export PKG_CONFIG_PATH

保存之后,执行source /etc/bash.bashrc使之生效。
至此,环境配置完成。

下面进行编译测试

编译测试
假如你已经有一个main.cpp函数文件了,进入其 所在的文件夹
执行下面的命令进行编译:

arm-linux-gnueabihf-g++ main.cpp -o hh  -lpthread -lrt `pkg-config --libs --cflags opencv`

其中arm-linux-gnueabihf-g++是编译用的编译器;main.cpp为要进行编译的程序;hh为编译之后生成的可执行二进制程序,可以任意命名

编译成功之后,就会发现生成了一个名为hh的二进制文件。

至此,在电脑上的OpenCV交叉编译已全部完成!!

剩下的工作就是把编译好的OpenCV库拷到ARM平台中,可以参考 将交叉编译好的OpenCV移植到ARM平台

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值