1、opencv编译部分请参考:
https://blog.csdn.net/qq_39660930/article/details/78050030
2、编译过程中出现的错误查找网络自行解决;
编译过程中出现的错误因人而异,我遇到的错误是cuda和protobuf,关闭这两个编译选项即可。
3、交叉编译过程中出现:
warning: ../../lib/libopencv_imgproc.so, needed by ../lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
是因为编译后的opencv动态库自带路径[ ../../lib/libopencv_imgproc.so];
使用命令查看:readelf -d libopencv_imgproc.so | grep NEEDED
0x00000001 (NEEDED) 共享库:[../../lib/libopencv_core.so]
0x00000001 (NEEDED) 共享库:[libstdc++.so.6]
0x00000001 (NEEDED) 共享库:[libm.so.0]
0x00000001 (NEEDED) 共享库:[libgcc_s.so.1]
0x00000001 (NEEDED) 共享库:[libc.so.0]
实际上在使用过程中该警告并不影响使用的,自测可以使用
注:在使用中可能需要调整,比如在测试3519a编译链himix200的时候使用export增加库路经的方式就不行,但是将库放到系统的lib目录下就可以正常使用;
4、要消除warning,只需要把库lib放到当前工程的上两级目录(../..)即可,然后再makefile中指定引用库路径就行啦
5、使用opencv-2.4.9和opencv-3.4.2两个版本测试分别测试了3516a和3519a两个平台
CC := arm-hisiv300-linux-g++
CC := arm-himix200-linux-g++
opencv-3.4.2均正常
opencv-2.4.9在3516a平台会出现错误:编译过程正常,但是在执行过程会出现以下错误
/mnt/nfs # ./test
./test: can't resolve symbol '_ZN2cv6imreadERKSsi'
测试代码:
Mat img = imread("lena.jpg");
printf("img.cols=%d, rows=%d\n",img.cols, img.rows);
该问题暂未解决,等以后解决了再来更新,也欢迎各位网友来解决,谢谢!
来源:https://blog.csdn.net/wangdf99/article/details/100532198