opencv移植到arm详细过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Opencv-2.1.0 的arm移植
我的环境
Host:Ubuntu 14.04
Target:tq2410 with Linux 2.6.30.4
Crossing Compiler:arm-linux-gcc 4.3.2
一交叉编译链的安装
1# cd /usr/local
解压,即可得到arm-none-linux-gnueabi 目录
# tar xzvf arm-none-linux-gnueabi-4.3.2.tgz -C ./
2 编辑/etc/bash.bashrc文件添加把编译器路径到环境变量PA TH中,
只要在这个文件中添加下面这2 个语句即可:
PATH=/usr/local/arm/4.3.2/bin:$PA TH
export PA TH
3 编辑完毕后使用source /etc/bash.bashrc 命令执行以下这个文件,让设置生效,之后再输入:
# arm-none-linux-gnueabi-gcc -v
如果输出下面的信息则表面设置成功:
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with:/scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu
--enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https:///GNUToolchain/
--disable-nls--prefix=/opt/codesourcery--with-sysroot=/opt/codesourcery/arm-none-linux-gnu eabi/libc
--with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc
--with-
gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-p c-linux-gnu/usr--with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-non e-linux-gnueabi-i686-pc-linux-gnu/usr
--disable-libgomp--enable-poison-system-directories--with-build-time-tools=/scratch/julian/lit e-respin/linux/install/arm-none-linux-gnueabi/ bin --with-
build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
但是,此时会报错:bash:/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc:没有那个文件或目录
这是因为是为62位机与32位不兼容,在64位ubuntu系统上运行32位程序需要安装32位lib
网上很多地方说用#sudo apt-get install ia32-libs可解决,但是我执行之后却显示:
# sudo apt-get install ia32-libs
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
现在没有可用的软件包ia32-libs,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
可是下列软件包取代了它:
lib32z1 lib32ncurses5 lib32bz2-1.0
E: 软件包ia32-libs 没有可供安装的候选者
运行以下命令即可:
#sudo apt-get install g++-multilib
这时即可显示上面的信息,交叉编译链安装完成
二OpenCV2.0.0交叉编译过程
ps:到这一步后网上很多教程都是开始交叉编译x264,xvid,ffmpeg等等,作者尝试过未果。所以转而投降cmake-gui,最后顺利编译成功。强烈推荐cmake-gui,简单实用。
1.安装cmake-gui #sudo apt-get install cmake-qt-gui
2.在usr/local新建文件夹
# mkdir opencv
把下载的OpenCV-2.0.0.tar.bz2解压到usr/local/opencv 目录下
3、然后在usr/local/opencv 新建一个opencv-arm 文件夹,作为CMake编译arm版本的工作目录
# mkdir opencv-arm
如下图所示:
3、在终端里调出CMake gui界面:
# cmake-gui