linux 系统上的 交叉编译 opencv 目标 ARM

本人的目标平台的树莓派B+安装的ubuntun14.10的系统

插一句:树莓派是什么

树莓派由注册于英国的慈善组织“Raspberry Pi 基金会”开发,Eben·Upton/埃·厄普顿为项目带头人。2012年3月,英国剑桥大学埃本·阿普顿(Eben Epton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名"树莓派"。这一基金会以提升学校计算机科学及相关学科的教育,让计算机变得有趣为宗旨。基金会期望这 一款电脑无论是在发展中国家还是在发达国家,会有更多的其它应用不断被开发出来,并应用到更多领域。在2006年树莓派早期概念是基于Atmel的 ATmega644单片机,首批上市的10000“台”树莓派的“板子”,由中国台湾和大陆厂家制造。

开源硬件,玩的人还是很多的,不过本人是才知道的,见笑了

交叉编译的环境为vmware10 中安装的麒麟15的ubuntu系统

本人严格按照opencv官网的这篇文章编译的

http://docs.opencv.org/doc/tutorials/introduction/crosscompilation/arm_crosscompile_with_cmake.html

相信英语稍微懂点就可以搞定,在此主要是记录下本人编译中遇到的几天问题

需要另外安装

sudo apt-get install g++-arm-linux-gnueabi

sudo apt-get install g++-arm-linux-gnueabihf

sudo apt-get install pkg-config//文章是写的是pkgconfig

optional 是可选安装的意思,本人是都安装了

[optional] ffmpeg or libav development packages for armeabi(hf): libavcodec-dev, libavformat-dev, libswscale-dev;

上面的这句话中我选择的是安装

sudo apt-get install libavcodec-dev

sudo apt-get install libavformat-dev

sudo apt-get install libswscale-dev


libdc1394

ubuntu系统15.4里面我选择安装sudo apt-get install libdc1394-22,默认应该是已经安装了


git clone https://github.com/Itseez/opencv.git

git客户端工具 相信应该都装过 我用 sudo apt-get install git-core 安装

因为我要编译时特定版本opencv2.4.9 所以我选择的是直接到opencv官网下载源码,这个不难


几下来就是这几条命令了

cd ~/opencv/platforms/linux//opencv 是我源码解压的路径
mkdir -p build_hardfp//编译生成的动态库或静态库等的位置
cd build_hardfp
cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake ../../..

因为本人需要编译是静态库,所以我加上了一个选项DBUILD_SHARED_LIBS=OFF

sudo cmake  -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake ../../.. -DBUILD_SHARED_LIBS=OFF


但是当本人严格这样执行命令后会发现提示找不到交叉编译的工具链的路径,且提示 版本为4.6,而我现在系统安装的arm-linux-gnueabihf 是4.9.2

故我将arm-gnueabi.toolchain.cmake文件的内容修改了两处

1、set(GCC_COMPILER_VERSION "4.6" CACHE STRING "GCC Compiler version")

将其改为set(GCC_COMPILER_VERSION "4.9" CACHE STRING "GCC Compiler version")

2、set(CMAKE_C_COMPILER  arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-gcc-${GCC_COMPILER_VERSION})
set(CMAKE_CXX_COMPILER  arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-g++-${GCC_COMPILER_VERSION})

将其改为

set(CMAKE_C_COMPILER    /usr/bin/arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-gcc-${GCC_COMPILER_VERSION})
set(CMAKE_CXX_COMPILER  /usr/bin/arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-g++-${GCC_COMPILER_VERSION})

到此终于顺利执行

然后执行make命令这个看你的机器cpu等性能了,本人电脑比较快,也没用太长时间

完了你会在build_hardfp 目录下看到opencv编译生成的库了。



另外

本人最近在学qt 算是小白,尝试用qt开发android应用,有些小小体会

还有对机器视觉感兴趣的可以加入我们的qq群 机器视觉解决方案群 142669208

简介:

机器视觉,机器人,视觉自动化,图像处理,视频分析,人工智能领域技术开发交流
iMV视觉核心库提供最专业的视觉解决方案, 欢迎项目合作,定制开发。


以及我们新开的机器视觉论坛

http://www.m-vision.club


本人qq:645625872


欢迎各位老师,同学,朋友,一起学习、交流,进步!

好了,最后就good luck! 吧




你可能感兴趣的:(树莓派,linux,Qt,android)