1.cmake编译CMakeList时出现以下错误
[ 20%] Building CXX object CMakeFiles/main.dir/utils.cpp.o
In file included from /home/djh/samples-v0.5.0/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_video/src/../inc/utils.h:27:0,
from /home/djh/samples-v0.5.0/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_video/src/utils.cpp:19:
/home/djh/ascend_ddk/arm/include/atlasutil/atlas_utils.h:27:10: fatal error: acl/acl.h: 没有那个文件或目录
#include "acl/acl.h"
原因:没有设置变量
在终端中输入以下命令
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux
export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub
2.继续编译有以下错误
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: warning: libavcodec.so.58, needed by /home/djh/ascend_ddk/arm/lib/libatlasutil.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: warning: libavformat.so.58, needed by /home/djh/ascend_ddk/arm/lib/libatlasutil.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: warning: libavutil.so.56, needed by /home/djh/ascend_ddk/arm/lib/libatlasutil.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: warning: libmedia_mini.so, needed by /home/djh/ascend_ddk/arm/lib/libatlasutil.so, not found (try using -rpath or -rpath-link)
/home/djh/ascend_ddk/arm/lib/libatlasutil.so:对‘MediaLibInit’未定义的引用
即就是libatlasutil.so动态库中依赖的文件没有找到
解决办法,将生成的Makeflie文件中哦的链接文件link.txt文件上加上运行时搜索路径。
步骤:
使用find / -name 寻找依赖文件
打开link文件,将搜索到的路径前一级加进去。
如以下内容
-Wl,-rpath,/home/djh/ascend_ddk/arm/lib -Wl,-rpath,/home/djh/Ascend/driver
在make即可