NDK错误解决

NDK报错:make: *** 没有规则可以创建“obj/local/armeabi/objs/a/a.o”需要的目标“/a.c”。 停止。


android开发用ndk编译so库时,有时直接从别的地方拷贝Android.mk文件,会报:

make: *** 没有规则可以创建“obj/local/armeabi/objs/a/a.o”需要的目标“/a.c”。 停止。

出现这个这个错误,可能是因为android.mk的文件格式可能是windows下拷贝,或是从网页copy,只要用vi在linux下打开Android.mk文件把行尾一些多余的看不见字符清除即可。

如果在NDK编译的时候遇到No rule to make target needed by *.o 请抽空看看这篇文章


由于平时写代码不小心,多半都是copy paste ,导致了一些自己不容易看出来的问题。

比如我之前有写soundTouch的JNI 在这个里面我有将两个lib 一个动态的一个静态的都放到 了一个Android.mk中

进行编译,但是发现莫名奇妙的报了个

“No rule to make target”

的错误,我找了大概有大半个小时才找到原因,就是我在一个Android.mk中声明了两个LOCAL_PATH变量导致ndk-build的时候

出现了语法上的错误,所以大家写Android.mk的时候一定要小心。

另外也有可能是在写某个变量事后面多加了个空格什么的,也会导致这个问题,总之要细心。

LOCAL_PATH在一个Android.mk文件中只能声明一个,而且CLEAR_VARS是不会清除LOCAL_PATH变量的,所以不用担心

在上面lib中定义的LOCAL_PATH会在下面的lib中用不了了。


make: *** No rule to make target `/cygdrive/g/workspaceNew/Live555/jni/./live/li
veMedia/H265VideoFileSink.cpp.cpp', needed by `/cygdrive/g/workspaceNew/Live555/
obj/local/armeabi/objs/live555/./live/liveMedia/H265VideoFileSink.cpp.o'.  Stop.

  检查Android.mk文件中   /cygdrive/g/workspaceNew/Live555/jni/./live/li
veMedia/H265VideoFileSink.cpp.cpp    这一行的声明和文件中的路径是否匹配


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值