opencv移植到arm详细过程_第1页
opencv移植到arm详细过程_第2页
opencv移植到arm详细过程_第3页
opencv移植到arm详细过程_第4页
opencv移植到arm详细过程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Opencv-2.1.0 的arm移植 我的环境 Host:Ubuntu 14.04 Target:tq2410 with Linux 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文件添加把编译器路径到环境变量 PATH中 , 只要在这个文件中添加下面这 2 个语句即可: PATH=/usr/local/arm/4.3.2/bin:$PATH export PATH 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=/GNUToolchain/ -disable-nls- prefix=/opt/codesourcery-with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/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- pc-linux-gnu/usr-with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm- none-linux-gnueabi-i686-pc-linux-gnu/usr -disable-libgomp-enable-poison-system- directories-with-build-time-tools=/scratch/julian/lite-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 按照下图方式选择源码目录和build目录 然后点击Configure 按钮,保持generator为Unix Makefiles,选择Specify options for cross- compiling,点击Next 按照如下方式配置: 注:/usr/local/arm/4.3.2 为交叉编译工具 arm-linux-g+/gcc 的所在包含文件夹(在bin文件夹里面) 注:Target System选项里 Operation我认为是arm板子上的操作系统,对应我的Version为,上 图中没有更改 然后点击 “Finish” 按钮; 然后点击Generate按钮生成Makefile; 4.在/usr/local/opencv/opencv-arm目录下$sudo make (1)83%报错: Linking CXX executable /bin/opencv_createsamples /lib/libopencv_core.so: undefined reference to clock_gettime /lib/libopencv_highgui.so: undefined reference to _TIFFerrorHandler /lib/libopencv_highgui.so: undefined reference to _TIFFrealloc /lib/libopencv_core.so: undefined reference to pthread_key_create 解决方法:修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上- lpthread -lrt,重新编译 (3)又报错: Linking CXX executable /bin/opencv_createsamples 此时又出错: /lib/libopencv_highgui.so: undefined reference to _TIFFerrorHandler /lib/libopencv_highgui.so: undefined reference to _TIFFrealloc /lib/libopencv_highgui.so: undefined reference to _TIFFmalloc /lib/libopencv_highgui.so: undefined reference to _TIFFmemcpy /lib/libopencv_highgui.so: undefined reference to TIFFOpen /lib/libopencv_highgui.so: undefined reference to _TIFFfree /lib/libopencv_highgui.so: undefined reference to _TIFFwarningHandler /lib/libopencv_highgui.so: undefined reference to _TIFFmemcmp /lib/libopencv_highgui.so: undefined reference to _TIFFmemset 解决方法:修改CMakeCache.txt,WITH_TIFF:BOOL=ON ,改成OFF(不再对TIFF 图像格式支持。 重新编译,成功 5、然后运行make install,将opencv生成的库和头文件(在/usr/local/opencv/opencv- arm/lib下)安装到目录/usr/local/arm/4.3.2/lib/opencv/,结果如下: 6、把这5个 .so 库文件拷贝到 ARM板系统中的 /lib 目录下面:(如下是添加之后的截图) 7、下来就是编写验证程序了: 首先得确保摄像头在ARM 板上的使用是正常的,具体情况请查阅大神的博文: 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用 参考文档: 1.Opencv-2.0.0的ARM 移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01) /index.php?c=article&a=read&id=47328 2. OpenCV移植到 ARM 全过程 /jemofh159/article/details/7553747 3.ARM编译OpenCV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论