海思AI芯片(35xx):linux下make交叉编译报错

linux下make编译报错如下图所示:
在这里插入图片描述

问题1:/bin/sh: 1: syntax error: “(” unexpecd
(或者/bin/sh: [[: not found 这种莫名奇妙的错误)
原因分析:是linux将sh指向了dash而不是bash
在这里插入图片描述
解决方法:
在终端输入:
ls -l /bin/sh # 提示如上图所示
sudo dpkg -dpkg-reconfigure dash # 弹出如下图所示,选择NO
在这里插入图片描述
ls -l /bin/sh # 提示如下图所示
在这里插入图片描述
如果第一次输入就是这样的提示,或者做了这两步之后,同样的错误还是照样出现。就检查下makeflie文件。
在Makefile中查问题是不是make语句中的$(shell pwd)部分。
比如有人说,发现代码目录的目录名中包含了括号!把目录改名,去掉名字中的括号,恢复正常。

问题2:“recipe for target xxx”错误
在这里插入图片描述
检查一下makefile文件
本人发现如下图所示,也就是说sample文件下所有的.c文件都读取编译。但是因为我将sample_nnie.c又复制了一份,变成了sample_nnie (copy).c,这个文件是没有头文件的,也就是sample_nnie (copy).h,找不到路径的,并且这也是不需要的文件,我只是为了报存原始的文件,如果将这个副本删除就可以make编译通过了。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/SMF0504/article/details/104811387