文章导航:
CNN复现系列一:基于zcu102的yolov2(part1:HLS部分)
CNN复现系列一:基于zcu102的yolov2(part2:vivado部分)
CNN复现系列一:基于zcu102的yolov2(part3:petalinux部分)
CNN复现系列一:基于zcu102的yolov2(part4:sdk部分)
CNN复现系列一:基于zcu102的yolov2(part5:上板测试)
前言:
在复现过程中为了达到实时输入与输出显示的效果,添加opencv相关库,前期遇到些问题,特此记录下来,以期为同行提供解决思路之参考。
将github下载而来的代码解压,本部分代码见yolov2.sdk文件夹下
源码链接:
一、使用共享库编译(非-static模式)
通过vivado启动sdk
1. 新建工程 File-->New --> Application Project
2. 工程配置如下:
Next
点击Finish后将在左侧相应生成工程
补充说明:
之所以不选择Empty Application模板,是因为选择opencv模板会自动将opencv相关库头文件加入,故也可以选择Empty Application, 只要手动加上opencv相关库路径即可,其路径一般如下:
可通过 your project(鼠标右键) --> C/C++ Build Settings 进入如下设置界面并添加 :
3. 添加yolov2.sdk下的文件至src中
4. 进一步配置
(1)添加用到的相关opencv共享库链接
(2)添加petalinux所生成的文件系统
5. 选择Release模式并编译
6. 编译通过后上板测试
二、使用静态库编译(-static模式:尚未完全解决)
1. OpenCV Libraries - undefined reference to `cv::imread, namedWindow, imshow, waitKey
解决:
2. cannot find xxx.o
找到文件所在目录,通过在终端输入以下命令建立一个软链接解决
- # 根据报错所指定的路径
- cd /home/zhoy/Desktop/fpgaKit/2018.3/SDK/2018.3/gnu/aarch64/lin/aarch64-linux/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin
-
- # 将其他地方存在的文件链接到报错所指定的路径
- sudo ln -s /home/zhoy/Desktop/fpgaKit/2018.3/SDK/2018.3/gnu/aarch64/lin/aarch64-linux/aarch64-linux-gnu/libc/usr/lib/crti.o ./crti.o
3. cannot find-lxx
请在“-L”选项下添加库路径,在“Libraries”部分中找到,如下所示:
4. 诸如cannot find /lib/libc.so.6报错
参考:qemu /lib/ld-linux-aarch64.so.1: No such file or directory_深空深蓝的博客-CSDN博客
启动静态编译:
5. 静态编译模式下,不能找到opencv库
三、涉及的资源
1. 软件版本:Xilinx SDK 2018.3
2. 硬件型号:Xilinx ZCU102
3. 源码链接:
4. 参考博客:
(1) linux系统:共享库问题之如version `ZLIB_1.2.9‘ not found