树莓派编译深度模型

本文详细记录了在使用make进行ARM平台编译时遇到的多个错误及其解决方案,包括添加ACL库路径、修复Half.hpp文件引用、调整目标文件路径及链接库文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、终于编译成功

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值