交叉编译并移植opencv3.0.0到arm板
来源:互联网 发布:免费淘宝装修软件 编辑:程序博客网 时间:2024/05/16 05:31
原文地址:http://blog.csdn.net/gatieme/article/details/49080355
项目需求,交叉编译opencv,并移植到arm中。
在opencv2.0以上的版本编译都要借助于cmake工具生成Makefile
2.0一下版本才是使用configure生成Makefile
请确保宿主机已经安装cmake和cmake-gui工具,如果请自行安装
- 1
- 1
开发环境
开宿主机:Fedora9.0
交叉编译器:友善之臂arm-linux-gcc4.4.3
自动化编译工具: cmake version 2.8.12.2
编译
下载opencv源代码
项目官网:http://opencv.org/
下载地址:http://opencv.org/downloads.html
源码我放置在自己目录的/opencv/opev3.0.0-src
下
期望的构建目录在/opencv/opencv3-build
下
期望的安装目录是/opt/arm/opencv/opencv3-arm
cmake配置生成makefile
运行cmake的图形化工具cmake-gui
- 1
- 1
选择源代码目录/opencv/opev3.0.0-src
选择Build目录/opencv/opencv3-build
,大家根据自己设置配置编译目录
点击Configure或者Generator
选择Unix Makefiles,
接着选择Specify options for cross-compiling,
点击Next,接着开始配置交叉编译环境的信息
Operating System填写arm-inux
C Compilers填写您交叉编译器arm-linux-gcc命令的地址
C++ Compilers填写arm-linux-g++的地址
程序库的Target Root填写交叉编译器的bin目录,
然后点击Finish,您的配置信息就出来的
注意默认的安装路径为 修改默认配置,默认安装目录为/usr/local
但是我们交叉编译的来说并不合适,这样会替换我们宿主机上原有的库,
所以我把CMAKE_INSTALL_PREFIX
变量改为/opt/arm/opencv/opencv3-arm
好了最后点击Configure
进行配置,然后点击Gennerate
就会生成Makefile
make编译并且安装
- 1
- 2
- 1
- 2
出现问题
我们刚才的配置其实肯定是有问题的,因为一堆依赖库没有配置链接参数,但是我们又不知道需要哪些库,所以我们只能等待出现问题进行解决。
pthread
报错
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
很明显是pthread的库,
解决
修改/opt/opencv3-build目录下的CMakeCache.txt CMAKE_EXE_LINKER_FLAGS
原来为空,加上-lpthread -lrt
dlfcn
问题
- 1
- 2
- 1
- 2
解决
CMAKE_EXE_LINKER_FLAGS
继续加上-ldl
parallel_pthreads_set_threads_num
问题
- 1
- 2
- 1
- 2
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
解决
这个是编译工具链的问题,解决了快一天
后来重要找到了解决方案Fixed compilation of pthread-based parallel_for with gcc 4.4.3
修改modules/core/src/parallel.cpp,自132行开始添加7处删除5处(+表示要添加,-表示要删除)
- 交叉编译并移植opencv3.0.0到arm板
- 交叉编译并移植opencv3.0.0到arm板
- 交叉编译并移植opencv3.0.0到arm板
- opencv3.2(with ffmpeg) 交叉编译移植到arm板(imx6),成功跑起来。
- 交叉编译VIM并移植到ARM嵌入式Linux系统
- 最新版ser2net移植到ARM板上,交叉编译
- ubuntu12.04交叉编译opencv移植到arm板
- ubuntu12.04交叉编译opencv移植到arm板
- minicom:交叉编译、移植到arm
- freeswitch移植到arm--交叉编译
- Bluez交叉编译移植到arm linux
- radvd移植到arm交叉编译问题解决
- ipmitool 交叉编译移植到arm(android)
- arm-linux-gcc-4.4.3交叉编译python2.7.3并移植到ARM
- Opencv3.2移植到arm板
- arm-marvell-linux-gnueabi 交叉编译c/c++程序,并移植到android
- QT unixODBC+freetds连接sqlserver并交叉编译移植到ARM上
- OpenCV ARM移植(交叉编译opencv) arm-oe-linux-gnueabi-gcc编译opencv3.1.0
- 万分之一错误率问题的分析及定位
- android 如何设置屏幕亮度默认值为自动调节
- (c++)求1+2!+3!+4!+…+30!。 科学计数法,保留两位小数。
- Android开发 Error(建议收藏下来以备不时之需):The number of method references in a .dex file cannot exceed 64K.
- 【Usaco 2007 Dec silver】穿越泥地 (Standard IO)
- 交叉编译并移植opencv3.0.0到arm板
- 安卓开源项目周报0117
- PAT甲级1028
- MySQL与网页进行数据传递(下)
- 将android本地项目上传到GitHub
- 利用composer安装 yii没有vendor目录
- 学完java后步入C#的学习历程(一)
- java实现数组的增删改查
- 正则表达式常用总结