实际上这里说的是移植的第一步,下载到源码后,我用的是opencv2.4.9,解压缩,然后可以利用cmake-gui来进行configure配置,这里面需要设置交叉编译的工具链,具体的可以参考【Linux开发】OpenCV在ARM上的移植

这里面的几个问题:

没有路径的可以设置选择No,不要选他。

除了前面列的那篇文中所提到的,要修改CMakeCache.txt中的那个CMAKE_EXE_LINKER_FLAGS=-lpthread -lrt,还有一个特别要命的问题就是:

Linking CXX shared library ../../lib/libopencv_core.so
/opt/EmbedSky/4.4.6/lib/gcc/arm-embedsky-linux-gnueabi/4.4.6/../../../../arm-embedsky-linux-gnueabi/bin/ld: ../../3rdparty/lib/libzlib.a(inflate.c.obj): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
../../3rdparty/lib/libzlib.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libopencv_core.so] 错误 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] 错误 2
make: *** [all] 错误 2

解决方法:

进入opencv目录下的3rdparty的对应目录CMakeFiles/ *.dir下,打开flags.make,在C_FLAGS = 后添加-O3 -fPIC用来支持在64位机上编译
如../3rdparty/zlib/CMakeFiles/zlib.dir/flags.make
修改C_FLAGS =  -W -Wall 为 C_FLAGS =  -O3 -fPIC  -W -Wall
和修改CXX_FLAGS =  -W -Wall 为 C_FLAGS =  -O3 -fPIC  -W -Wall

好像得对应到每一个出错的路径下进行修改(多个都出现这种问题的话)。

编译一个能在 arm 平台上用的动态库,结果报错如下:
relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
./obj/xxx.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status其实错误信息已经给出解决办法了,加 -fPIC 参数从新编译(recompile with -fPIC)
所以如果是命令行,直接添加 -fPIC
如果是Makefile,添加编译选项:CFLAGS  +=  -fPIC
Done !

好像还是64bit操作系统的问题吧?

------------------

2016-8-28 19:37

张朋艺 pyZhangBIT2010@126.com

转载于:https://www.cnblogs.com/huty/p/8518223.html

【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题相关推荐

  1. 【Linux开发】如何查看Linux kernel的内置模块驱动列表和进程ID

    [Linux开发]如何查看Linux kernel的内置模块驱动列表和进程ID 标签:[Linux开发] 命令: cat /lib/modules/$(uname -r)/modules.builti ...

  2. linux开发板汉字显示,Linux Qt 及Arm开发板汉字显示

    作为一个优秀的开发人员,我就不说废话了. 很多人在 使用Qt做嵌入式开发时,会遇到一个问题: 汉字显示,网上有好多方法,并且针对 Qt5 以前的版本和Qt5 的版本有不同的方法,同样,我也遇到了这个问 ...

  3. zynq linux开发与普通ARM平台的不同点

    zynq系列 linux开发特点 前言 平台简介 开发方式 使用petalinux直接配置 使用源码工程传统开发 启动linux文件的区别 1.patelinux配置开发 2.使用源码工程开发 pin ...

  4. win集成linux开发环境,在 Windows 10 上创建开发环境 | Microsoft Docs

    在 Windows 10 上设置开发环境Set up your development environment on Windows 10 07/24/2020 本文内容 本指南将帮助你开始安装和设置 ...

  5. arm linux 2.6下载,ARM+LINUX(montavista2.6.x)环境下SIMCOM5218使用

    ARM+LINUX(montavista2.6.x)环境下 SIMCOM5218使用 http://blog.sina.com.cn/s/blog_4c796ed20100hpxg.html 一. 系 ...

  6. 嵌入式linux开发课程设计,嵌入式Linux开发课程设计指导书

    嵌入式Linux开发课程设计指导书 课程编码: 适应专业:计算机专业.电子信息工程专业 学时:3周(计算机专业),2周(电子信息工程专业) 学分: 3(计算机专业),2(电子信息工程专业)时间安排:分 ...

  7. linux开发需要学习什么,linux开发需要掌握哪些知识?

    原标题:linux开发需要掌握哪些知识? 嵌入式linux开发的应用是非常广泛的.而且linux是开源的,各种技术也是非常成熟的.不过很多初学者在学习linux开发过程中感觉非常难,那么对于linux ...

  8. linux 开发板传文件,Linux下用USB传输文件到开发板

    记录一下解决EZ6410的板子在Linux下用USB来传输文件问题的过程~ 前两天ARM11的开发板到了,需要先验证一下各项功能.以往用FS2410时用的是minicom+usb2ram,功能比win ...

  9. 最新linux伺服控制,基于ARM Linux的三轴伺服控制系统人机界面设计 毕设

    基于ARM Linux的三轴伺服控制系统人机界面设计 毕设 洛阳理工学院毕业设计(论文) 基于ARM+Linux的三轴伺服控制系统人机界面设计 摘要 现代计算机技术的产业革命,将世界经济从资本经济带入 ...

  10. linux 开发设计软件,在Linux平台下开发和设计聊天软件

    在网络无所不在的今天,在Internet上,有ICQ.MSN.Gtalk.OICQ等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了 ...

最新文章

  1. Go 变量及基本数据类型2
  2. Alibaba微服务事务Seata源码深度剖析 - 笔记
  3. Zookeeper集群搭建(配置详解)
  4. 防腐投加器需要加盐吗_果干、果脯、蜜钱、水果脆片,哪个有营养?你吃对了吗?...
  5. [MyBatisPlus]雪花算法
  6. linux网络包截获,用C实现截获网络数据包
  7. ubuntu下常用服务器的构建
  8. 产生随机小数_如果取到小数区间内的任一数字?
  9. python后端前景_python后端开发前景-女性时尚流行美容健康娱乐mv-ida网
  10. 俄罗斯 IT 存储空间告急,未来 2 月或将耗尽?
  11. mysql setautocommit_MySql 中的setAutoCommit方法
  12. 地图上制作线路的动画_R制作动画地图
  13. ETL-informatica进阶资料整理
  14. Visual Studio使用技巧---(1-10)
  15. Markdown 数学符号大全
  16. Drools教程(基础篇)—— Eclipse插件安装
  17. 【合天网安】Burpsuite简介及MIME上传绕过实例
  18. 改变人类命运的造人计划
  19. Alexander Tropsha:AI从零自学设计新型药物分子,研究登Science子刊|42问AI与机器人未来...
  20. iOS逆向一iPhone手机越狱/APP脱壳/IPA签名

热门文章

  1. Docker 快速学习(一)
  2. celery配合rabbitmq任务队列实现任务的异步调度执行[celery redis]
  3. Linux下运行JAVA程序——JRE安装和配置
  4. 10小时,就能吃透Kafka源码?
  5. 这回把Spring @Async彻底搞懂了
  6. 985 硕士待业200天,工作 10 年存款 2W : 累死你的不是工作,而是“选择”
  7. 滴滴辞退2000人启示:牛逼的人,都有自己的铁饭碗
  8. QQ亿级日活跃业务后台核心技术架构揭秘
  9. 浅谈几种常见 RAID 的异同
  10. 运维工程师姓什么很重要!请别叫我“X工”