树莓派编译深度模型
1、利用make進行編譯時:make -C /home/pi -f cnnbuild_rtw.mk
編譯報錯:
make: Entering directory '/home/pi'
g++ -c ?-fPIC -O3 -fno-loop-optimize -fno-aggressive-loop-optimizations ?-mfpu=neon -march=armv7-a -std=gnu++11 ?-I"C:/Users/NEVERGUVEIP/Desktop/����??/my_train/codegen" ?-I"" -I"/include" -o "MWConvLayer.o" "MWConvLayer.cpp"
In file included from MWConvLayerImpl.hpp:7:0,
? ? ? ? ? ? ? ? ?from MWConvLayer.cpp:4:
MWCNNLayerImpl.hpp:11:50: fatal error: arm_compute/runtime/NEON/NEFunctions.h: No such file or directory
?#include "arm_compute/runtime/NEON/NEFunctions.h"
解決方法:主要原因是makefile種沒有添加所用到的ACL庫的路徑
打開makefile文件,大概104行的樣子,將ACL的路徑添加進去。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^
2、繼續報錯?
/usr/local/arm_compute1/support/Half.h:36:25: fatal error: half/half.hpp: No such file or directory
?#include "half/half.hpp"
解決方法:這個錯誤的原因是half.hpp文件,在include文件夾下
打開/usr/local/arm_compute1/support/Half.h文件,改成下面的樣子。
3、bug
?ar: ../cnnbuild.a: Permission denied
cnnbuild_rtw.mk:155: recipe for target '../cnnbuild.a' failed
?這個錯誤的原因是因為,makefile的意思是要在前一級目錄中新建一個cnnbuild.a。可是我已經在根目錄下了。所以將makefile中大概17行中的PRODUCT_NAME = ../cnnbuild.a? ? 修改為:PRODUCT_NAME ?= cnnbuild.a? 這個 的意思是在當前目錄建立目標文件。
4、繼續修bug
ar:?/lib/libarm_compute.so: No such file or directory
原因:還是沒有找到這個文件,這個文件不在系統的lib目錄下,是在ACL庫的目錄下。
我的ACL庫的版本是18.03,我把它解壓在arm_compute1文件夾下,在該文件夾的lib下有多種版本的libarm_compute.so,我的樹莓派芯片是armv7的,我就用了linux-armv7a-neon的庫文件。
打開makefile,將128行的TOOLCHAIN_LIBS = ?/lib/libarm_compute.so ?/lib/libarm_compute_core.so 修改為:
TOOLCHAIN_LIBS = ?/usr/local/arm_compute1/lib/linux-armv7a-neon/libarm_compute.so ? /usr/local/arm_compute1/lib/linux-armv7a-neon/libarm_compute_core.so?
5、終于編譯成功
總結
- 上一篇: 查看linux系统属性
- 下一篇: g++编译时:No such file