opencv海思平台移植解决warning: ../../lib/libopencv_imgproc.so, needed by ../lib/libopencv_imgcodecs.so, not

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);
该问题暂未解决,等以后解决了再来更新,也欢迎各位网友来解决,谢谢!

 

你可能感兴趣的:(opencv)