OpenCV交叉编译
2016-01-09 22:30
369 查看
参考几篇博客
1.交叉编译opencv2.31与移植至arm9:
/article/8004156.html
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
然后cmake用的是cmake-3.4.1-Linux-i386.tar.gz版本,其实这个只需在linux中解压即可,需要用cmake-gui时,只需到bin目录下,
打开cmake-gui之后,选择要编译的源文件和编译之后存放的路径
然后配置编译工具
这里的
(一说Processor这里可以填上
Compilers选项下的C和C++分别对应安装的gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux路径下的
Target Root选项为gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux的安装目录,不用带
点击finish之后会出现第一次Configure的结果,可能出现各种错误,比如说
然后就是修改红色区域的部分值,去掉某些值: WITH_OPENCL、WITH_TIFF 、BUILD_OPENEXR、WITH_OPENEXR、WITH_CUDA
并修改CMAKE_INSTALL_PREFIX的值为自己想要的路径,这里我设置为了
(不知道这步在这里是否是必须的)然后打开/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为空,添加上相应的路径,见上
然后就可以执行
最后
配置编译环境
这里先做一个说明:
我的编译文件存放目录:
编译生成的头文件存放目录:(即CMAKE_INSTALL_PREFIX的值)
首先,你可以打开
然后编辑库连接配置文件
然后
添加环境变量
保存之后,执行
至此,环境配置完成。
下面进行编译测试
编译测试
假如你已经有一个main.cpp函数文件了,进入其 所在的文件夹
执行下面的命令进行编译:
其中
编译成功之后,就会发现生成了一个名为
至此,在电脑上的OpenCV交叉编译已全部完成!!
剩下的工作就是把编译好的OpenCV库拷到ARM平台中,可以参考 将交叉编译好的OpenCV移植到ARM平台
1.交叉编译opencv2.31与移植至arm9:
/article/8004156.html
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-gcc和
arm-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平台
相关文章推荐
- NavigationController popToViewController 问题
- linux系统安装yum环境
- bash学习前方
- linux常用命令2
- linux常用命令2
- 用Xshell连接 VMware的cent OS 系统过程
- Linux操作命令(一)
- 【OpenCV】分离多通道图像RGB的值
- MonoGame Cross Platform Implementation of XNA for iOS, Android, Mac , Linux, Windows, Windows8, OUYA
- nginx处理问题笔记
- Linux之加密解密基础技术
- Toast和Looper。Handler消息循环机制。
- 图片服务架构演进
- 在Windows下配置Apache + OpenSSL 经测试可以使用
- Linux 驱动模块编译
- Linux 中的 sed 命令详解
- 用DropDownList实现的省市级三级联动
- 【Linux】教你一步一步在CentOS Linux release 7.1上卸载vsftpd FTP服务器
- hadoop关于java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO错误
- nginx处理问题笔记