OpenCV3.2.0 ARM版移植过程中的错误

1.make的过程中关于“pthread”的错误:

解决方案1:在cmake-gui中勾选Advance,然后修改CMAKE_EXE_LINKER_FLAGS值为-lpthread -lrt避免编译时出错;

解决方案2:修改编译路径中的CMakeCache.txt文件,找到CMAKE_EXE_LINKER_FLAGS,在其后面加上-lpthread -lrt -ldl链接属性(=-lpthread -lrt -ldl)

2.make的过程中关于 "error: dc1394/dc1394.h: No such file or directory "的错误:

解决方案:cmake-gui中去掉opencl和ocl相关配置(去掉WITH_OPENCL,WITH_OPENCAMDBLASL,WITH_OPENCLAMDFFT,BUILD_opencv_ocl)

3.make的过程中关于 long和int的错误:

4.编译好的程序在开发板(ITOP4412)上运行,报错:./opencvtest: error while loading shared libraries: ../../lib/libopencv_objdetect.so: cannot open shared object file: No such file or directory  ;但我已经将共享库复制到了开发板的/lib目录下,同时编译时也指定了运行时的动态库路径(rpath:/lib),同时在开发板的/etc/profile环境变量中也指定了运行时共享库路径(LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib),仍然报相同错误,非常无语!!然后在PC端通过“arm-none-linux-gnueabi-readelf -a ./opencvtest | grep "Shared"命令查看可执行程序依赖库,结果存在: 0x00000001 (NEEDED)                     Shared library: [libopencv_objdetect.so]这一项,说明可执行程序没问题,问题还是在于开发板找不到库:libopencv_objdetect.so;现在甚至怀疑开发板的链接器有问题。突然发现实是在NFS虚拟文件系统中运行的程序,于是将程序cp到/home/opencv目录下,运行提示:./opencvtest: /lib/libc.so.6: version `GLIBC_2.17' not found (required by /lib/libopencv_core.so) ,错误信息不同了,看来不能在NFS中运行需要共享库的程序(还没搞清楚原因),查看开发板的libc版本,时2.10的,需要移植2.17版本。

5.交叉编译clib-2.17,解压源码,没有CMAKEFILE.txt,不能用cmake-gui,在源码目录下建立install和build目录,然后在buile目录下运行../configure  --build=x86  --target=arm-none-linux-gnueabi  --host=arm-none-linux-gnueabi   CC=arm-none-linux-gnueabi-gcc  CXX=arm-none-linux-gnueabi-g++     --prefix=/home/top/my_project/ARM_app/libc-2.17/glibc-2.17/install  ,报错:These critical programs are missing or too old: make gawk,于是安装了gawk(apt-get install gawk),但是我已经安装了make-4.1(高版本),为什么会报错,查看clib-2.17是2012年更新的,而make-4.1是2018年更新的,推断是make版本太高,果断安装了make-3.81(安装了make-3.81后 ,用make -v可能人然显示make-4.1,其实已经安装好了),编译通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值