爱板网论坛

查看: 199|回复: 3

[原创] 【BPI-M2 Berry试用】论opencv3.3.0编译的那些坑(非成功版)

[复制链接]

11

主题

0

好友

266

积分

秀才

Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    昨天 23:26
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2017-10-26 00:04:55 |显示全部楼层
    这是一张吐槽贴和碰壁贴,要教程的可以看看我另一片帖子:
    1. http://www.eeboard.com/bbs/thread-97291-1-1.html
    复制代码
    虽然是3.2.0,而且是树莓派的,但编译流程大致相同。也可以关注我后面的试用贴,由于试用期限要到了,来不及尝试新方法,只能先把之前碰过的那些壁先罗列一下,供诸位借鉴:

    (一)闪存与空间
    首先要“感谢一下某丧、某力士之流,我们内存条的价格如下:
    10b6b4843933e0f3.png

    管中窥豹可见一斑,tf卡价格也水涨船高,望着午餐土,最终决定还是把手机上的老金士顿拔下来用。不过略微尴尬的是,这张8g的金士顿在安装完系统和必要的东西之后剩下一点多g,面对对于光是编译文件就要3g以上空间的opencv3.3.0+contrib模块,大感巧妇难为无米之炊!
    不过,联想到之前双系统的ubuntu也是面临这种困境,结果借用win的盘成功编译,于是我也不得不泛起小心思。

    (二)挂移动硬盘

    香蕉派有个非常可喜的功能——sata硬盘接口,那么我们就不得不活络心思了。不过由于手上没用对应的连线,某电商平台买的也还没到,于是我决定做了一次死:
    把sata转usb接到香蕉派的usb口……
    结果,xrdp和ssh瞬间断开,绿灯熄灭,等我几秒后反应过来,迅速拔电、拔盘、重启,结果,绿灯依然没用亮,瞬间心里凉飕飕的,只剩下一个念头:
    ——派挂了
    万幸的是第二天再一次重启,它又顽强地亮了起来,看来香蕉派专门弄一个sata接口也不是闲的没事干的……

    (三)u盘
    好吧,移动硬盘方案告吹,只能上u盘了。
    16g金士顿,以前在某另一电商平台买的,现在似乎也涨了一半,再次“感谢”某丧、某力士。
    把脚本中编译路径什么的改好,cmake,make

    结果编译到33%左右,出现如下错误:
    1. cmake_symlink_library: System Error: Operation not supported
    复制代码
    根据经验,arm编译opencv总是有莫名其妙的问题,一般再编译一次就过去了,结果……
    折腾了好几天,最终也是编译不过去,这时才想起百度,一查:


    我使用vmware,在win7机器的共享目录中编译,无法创建链接,就会提示上面的错误。
    解决办法是,把源码复制到linux的本地目录中,比如/home等,在本地目录中编译就不会有这个问题。
    另外,从linux中拷贝符号链接到windows机器的共享目录时,也会提示错误导致无法拷贝,也是这个原因。你可以使用xshell等将符号链接拷贝出来。

    嗯,好吧,我不编译contrib了。
    结果证明我太天真了,即使不便宜contrib依然不够空间……


    (四)使用其他arm平台编译成果
    后来,我用树莓派编译的3.3.0,用盘接上,直接运行make install,结果仍然是error,告诉我系统检测错误,应该是编译的系统跟目前运行的系统不匹配吧……
    然后又想,是不是博通跟全志的芯片差别有点大呢?
    有用基于h2的另一款创客板编译出来的3.3.0make install一次,结果告诉我要继续探索。


    (五)交叉编译——制作交叉编译链
    这下没办法了,只能看看能不能交叉编译,于是先按教程把gcc5.4.0的编译链制作出来:
    1. http://blog.csdn.net/pengfei240/article/details/52917018
    复制代码
    结果编译完binutils,一看目录,编译文件都不翼而飞了,在make一次又告诉我已经编译完。折腾了好久还是不行。

    (六)交叉编译——编译opencv
    到了这个时候,我已经折腾了两个星期,耐心消耗得差不多,无奈之下,直接下载已有的交叉编译链,不过这些编译链都是4.4.9的,听说编译出来可以兼容5.4.0?
    交叉编译链下载地址:
    1. http://www.veryarm.com/cross-tools
    复制代码
    然后参考这个帖子编译了一下:
    1. http://blog.csdn.net/gatieme/article/details/49080355
    复制代码
    结果编译到20%多的时候老是出现math.h找不到的错误。

    (七)接下来
    到了这个时候,我已经完全没用脾气了,只能乖乖用
    1. sudo apt-get install libcv-dev
    复制代码
    安装2.4.9版本的opencv,结果就出现我前面帖子唯独香蕉派跑opencv2的怪象。
    后来仔细一向,觉得可能是我u盘用了ufs格式,想过格式化为ext4试一下,但想到贵了五成的u盘,又生怕格式化一不小心毁了我绝无仅有的移动存储设备,于是迟迟也没用动手……
    最近跟同样沉溺于编译opencv3苦海的挤挤大神讨论了一下,听说ext4也有这种问题,不过把contrib移到home目录下就可以了。由于试用期期限已至,先发一张贴把以前遇到的坑罗列一下,以后成功了再补上详细教程。

    回复

    使用道具 举报

    25

    主题

    10

    好友

    3325

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2017-10-27 09:48:18 |显示全部楼层
    哈哈,你把另一篇帖子,写成代码了,在这里http://www.eeboard.com/bbs/thread-97291-1-1.html
    回复

    使用道具 举报

    11

    主题

    0

    好友

    266

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    昨天 23:26
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2017-10-27 21:33:46 |显示全部楼层
    ky123 发表于 2017-10-27 09:48
    哈哈,你把另一篇帖子,写成代码了,在这里http://www.eeboard.com/bbs/thread-97291-1-1.html ...

    我网址都是写成代码的,感觉看起来好看,也方便赋值,不会错
    回复

    使用道具 举报

    25

    主题

    10

    好友

    3325

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2017-10-30 08:57:23 |显示全部楼层
    day_day 发表于 2017-10-27 21:33
    我网址都是写成代码的,感觉看起来好看,也方便赋值,不会错

    嗯哼,早呀
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /2 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-11-25 08:12 , Processed in 0.261318 second(s), 14 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部