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

来源:互联网 发布:c 界面编程书籍 编辑:程序博客网 时间:2024/04/30 01:10

本人的目标平台的树莓派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! 吧




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6岁宝贝烧到39度怎么办 2岁半的宝宝说话结巴怎么办 2周3宝宝不会说话胆小怎么办 宝宝我2岁多了说话有点结巴怎么办 两岁宝宝说话突然结巴了怎么办 两岁3宝宝叫她名字不理人怎么办 九个月的宝宝身高不达标怎么办 3岁宝宝又吐又拉怎么办 宝宝发烧39度怎么办手脚很烫 两岁宝宝吃什么吐什么怎么办 7岁宝宝吃多了吐怎么办 7个月的宝宝大便干燥怎么办 10个月宝宝便秘大便干燥怎么办 一岁半宝宝老是拉糊糊状大便怎么办 外阴部长了一个疙瘩有点痒怎么办 小孩打架被另一个小孩家人告怎么办 德保豆浆机有电但不工作怎么办 刚买的笔记本c盘不足怎么办 qq糖粘在喉咙气管里怎么办 穿上旗袍后感觉后腰处不平整怎么办 机打票给客人给错联怎么办?急 ps修证件照感觉不太立体怎么办 手机百度上下载的文档打不开怎么办 5岁宝宝乘飞机没带证件怎么办 网上订飞机票忘记订儿童票了怎么办 两岁宝宝对牛奶鸡蛋过敏了怎么办 两岁宝宝坐不住好跑怎么办 宝宝两岁多了不愿意坐小马桶怎么办 坐火车小孩拉屎在被子上怎么办 川航飞机票名字错了一个字怎么办 胜战本领怎么看走向战场怎么办 数数字油画你的颜料干了怎么办? 数字油画涂颜料涂错了怎么办 绝地求生模拟器注册已达上限怎么办 孕妇把番茄和虾一起吃了怎么办 4岁宝贝吃了玩具小电池怎么办 微信使用零钱需完善实名信息怎么办 两岁宝宝刷牙不会吐水怎么办 孩子牙龈上长了小牙怎么办 供暖公司未供暖却收取供暖费怎么办 两岁宝宝认知和语言能力低怎么办