make: *** No rule to make target 错误原因、分析和解决办法

在用Tornado编译的时候,遇到编译器报如下错误: 

make: *** No rule to make target `e:/Tornado2.2_Project/FTTB/utils/h/nos/nos_cli.h', neede
d by `onu07_snmp_cli.o'.  Stop.

 

错误原因:makefile里面的文件依赖关系有问题,导致头文件找不到。

解决办法:打开编译相关模块的makefile文件,找到.o文件的依赖关系,找到.h文件的路径,查看是否出错并改正。

原因分析:这种情况有时候是因为工程所在的目录改变,例如原来在C盘,现在移到了D盘,而makefile里面的.h文件路径没有改变




本人编译linphone时候遇到了上述问题。经过上述的描述,已解决问题。具体解决步骤是:  

比如我的报错是:
make[1]: *** No rule to make target `jni/..//submodules/linphone/oRTP/build/android/../..//src/str_utils.c', needed by `obj/local/x86/objs/ortp/src/str_utils.o'.  Stop.

分析此问题,的确是由于更改了目录名称引起的。先在出问题的工程下全局搜索str_utils, 然后分别打开这些文件。查看文件里边出错的路径,然后进行相应修改就行了。我出问题的文件名称是 str_utils.o.d 。

最后发现,上述问题的产生的根本原因是工程更改路径或者更改了其中的文件夹名称之后,之前生成的.o.d文件在再次编译时并不会重新编译,因而导致该问题。根源解决办法是 删除编译后生成的obj文件夹。然后重新编译就行了。

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值