arm移植opncv2,链接库问题

w394525847 2017-09-14 04:26:01
按照这位大神的方法配置了Linux 下的opencv2:http://blog.csdn.net/luotuo44/article/details/8958990

配置完成后 按照指定方式 交叉编译了一个opencv 的文件,用命令查询后运行平台为arm


下载到ARM 平台上 运行出现如下许多错误


关于ARM 平台的一些配置

...全文
931 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
w394525847 2017-09-27
  • 打赏
  • 举报
回复
感谢所有人的回复,现在问题解决了,谢谢大家
w394525847 2017-09-27
  • 打赏
  • 举报
回复
引用 10 楼 Jeff_showmethemoney 的回复:
这个跟你的依赖库有关,你编完程序后通过ldd命令可以看到实际依赖的库。 当我们说编译器时,更准确地讲是整个编译环境,包括各种库啊,头文件啊。对于你的情况,在编译包括链接的时候它找到的是PC上的版本A的库(因为动态库,它假设以后是在有该版本库的环境下运行的),而当你放到开发板上,却只有版本B的库,尽管其实差不多。但运行时的版本检查肯定不会放过的。所以正确的做法:你在PC上同样要有版本B的库,那这个版本B的库从何而来,往往就是来自于你的编译环境了。
多谢,大神指点!
Hello Worm 2017-09-26
  • 打赏
  • 举报
回复
这个跟你的依赖库有关,你编完程序后通过ldd命令可以看到实际依赖的库。 当我们说编译器时,更准确地讲是整个编译环境,包括各种库啊,头文件啊。对于你的情况,在编译包括链接的时候它找到的是PC上的版本A的库(因为动态库,它假设以后是在有该版本库的环境下运行的),而当你放到开发板上,却只有版本B的库,尽管其实差不多。但运行时的版本检查肯定不会放过的。所以正确的做法:你在PC上同样要有版本B的库,那这个版本B的库从何而来,往往就是来自于你的编译环境了。
w394525847 2017-09-25
  • 打赏
  • 举报
回复
引用 7 楼 Jeff_showmethemoney 的回复:
问题在于,你去哪里找到最新的内核呢,或者说哪个最新的内核呢?你这个内核是montavista的,印象中TI板子后期的内核就不再是monta了。尽管都是开源,你去内核官网下载的内核以及编译器,要想让它完全在你的板子上跑起来,里面有一堆配置要改,对于新手且对硬件不熟悉的人来说,工作量非常大。所以,你需要做的:咨询TI,以获取支持本开发板的最新内核,和编译器,可能还是2.6.2x的,但对你的板子来说,已经是最新的了。
你好, 我今天写了一个测试的小程序,输出一段字符,arm-Linux-gcc 4.3.2,交叉编译的,能在arm上正常运行。。。。。,是我的哪里配置出了问题吗?
zhxianbin 2017-09-23
  • 打赏
  • 举报
回复
引用 6 楼 w394525847 的回复:
[quote=引用 4 楼 zhxianbin 的回复:] 是不是同一个编译器编译的,是的话你做文件系统的时候,拷贝库是不是漏了
非常感谢你的回复,可能是编译器版本不对应。。。小白一枚,请大神指教 [/quote] 用同一个编译器编译啊
Hello Worm 2017-09-22
  • 打赏
  • 举报
回复
问题在于,你去哪里找到最新的内核呢,或者说哪个最新的内核呢?你这个内核是montavista的,印象中TI板子后期的内核就不再是monta了。尽管都是开源,你去内核官网下载的内核以及编译器,要想让它完全在你的板子上跑起来,里面有一堆配置要改,对于新手且对硬件不熟悉的人来说,工作量非常大。所以,你需要做的:咨询TI,以获取支持本开发板的最新内核,和编译器,可能还是2.6.2x的,但对你的板子来说,已经是最新的了。
w394525847 2017-09-22
  • 打赏
  • 举报
回复
引用 4 楼 zhxianbin 的回复:
是不是同一个编译器编译的,是的话你做文件系统的时候,拷贝库是不是漏了
非常感谢你的回复,可能是编译器版本不对应。。。小白一枚,请大神指教
w394525847 2017-09-22
  • 打赏
  • 举报
回复
引用 3 楼 Jeff_showmethemoney 的回复:
你这个差得还有些多了。总体来说,编译环境和运行环境差距太大,编译环境对应的很多依赖库在运行环境都没有,博客里面用到的编译器是arm-linux-gcc-4.3.2,而你的内核所用编译器是3.4.7,具体是哪个公司的交叉编译器看不出来,建议你咨询一下该开发板的其他使用者。 另外,交叉编译器一般都是会跟内核配套好一点,因此,建议你使用与内核一致的交叉编译器来编译opencl,反之会很困难。 PS:你这个DM6467的开发套件已经算是很旧了,有些资源可能TI都不一定支持了,建议更换硬件吧
非常感谢你的回复,我也是刚刚才开始搞开发板,关于arm 版 编译器版本过低,可不可以,下载最新的内核,烧录到arm里边呢?
zhxianbin 2017-09-22
  • 打赏
  • 举报
回复
是不是同一个编译器编译的,是的话你做文件系统的时候,拷贝库是不是漏了
Hello Worm 2017-09-21
  • 打赏
  • 举报
回复
你这个差得还有些多了。总体来说,编译环境和运行环境差距太大,编译环境对应的很多依赖库在运行环境都没有,博客里面用到的编译器是arm-linux-gcc-4.3.2,而你的内核所用编译器是3.4.7,具体是哪个公司的交叉编译器看不出来,建议你咨询一下该开发板的其他使用者。 另外,交叉编译器一般都是会跟内核配套好一点,因此,建议你使用与内核一致的交叉编译器来编译opencl,反之会很困难。 PS:你这个DM6467的开发套件已经算是很旧了,有些资源可能TI都不一定支持了,建议更换硬件吧
w394525847 2017-09-21
  • 打赏
  • 举报
回复
引用 1 楼 u013470224 的回复:
缺少依赖的库
你好,能说的详细点吗?给个解决方案啊。。。。
jamon_tan 2017-09-15
  • 打赏
  • 举报
回复
缺少依赖的库
边缘检测_OpenCV在Zedboard上的移植 本实验的前提条件: ① 下载安装cmake:apt-get install cmake cmake-curses-gui ② 已安装arm-xilinx-linux-gnueabi-gcc编译环境 1、 新建安装目录 新建安装目录/home/esion/zed,将opencv-2.4.10.zip复制到zed文件夹中并解压缩,这样在zed目录下就有opencv-2.4.10文件夹,在此文件夹中新建一个build和install文件夹。 2、 配置安装链 在opencv-2.4.10文件夹中新建一个toolchain.cmake文件。可以使用gedit toolchain.cmake命令新建该文件。在toolchain.cmake文件中输入 set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_C_COMPILER arm-xilinx-linux-gnueabi-gcc) set(CMAKE_CXX_COMPILER arm-xilinx-linux-gnueabi-g++) 3、 OpenCV安装配置 关联toolchain.cmake文件并配置移植OpenCV的安装目录。进入bulid文件夹打开终端,进入root身份: cmake -D CMAKE_TOOLCHAIN_FILE=toolchain.cmake -D CMAKE_INSTALL_PREFIX=/home/esion/zed/opencv-2.4.10/install ../ 4、 生成Makefile文件 执行 ccmake ./ 进行OpenCV配置,通过上下键和回车键设置WITH_V4L为ON其他所有WITH开头的选项选成OFF,因为这些需要第三方库支持的,要是选择这些的话就需要安装第三方库了。设置完成后按c键进行配置,g键产生Makefile文件。 5、 编译安装 配置完成后,输入 make 开始编译,这一步的时间比较长,约20分钟左右,编译完成后,输入 make install 进行安装,安装完成后在install的文件夹里生成四个目录:bin、lib、include、share,其中lib就是Zedboard所需的运行库。 6、 制作opencv镜像文件 可以通过将OpenCV运行库压缩到ramdisk镜像中的方法进行移植,不过在这里将OpenCV运行库压缩成镜像,Zedboard上板测试时通过加载镜像的方式使用。下面进行镜像制作,注意仅在终端中输入下方的指令即可,无需输入注释内容。 cd /home/esion/zed // 生成镜像的目录 dd if=/dev/zero of=opencv_lib.img bs=1M count=80 // 镜像的名字opencv_lib.img和大小80M,可以根据实际链接库的大小进行设置 mkfs.ext2 -F opencv_lib.img chmod go+w opencv_lib.img mount opencv_lib.img -o loop /mnt 将ubuntu中相应的库文件拷贝到opencv库中: cp /home/z/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* /home/esion/zed/opencv-2.4.10/install/lib

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧