Android ndk 覆盖目标Android Makefile的命令
我正在尝试用g++编译我的androidndk项目中的一个模块,尽管源代码都是C语言。 我的眼睛被make系统警告激怒了:Android ndk 覆盖目标Android Makefile的命令,android-ndk,makefile,Android Ndk,Makefile,我正在尝试用g++编译我的androidndk项目中的一个模块,尽管源代码都是C语言。 我的眼睛被make系统警告激怒了: `C:/NVPACK/android-ndk-r8d/build/core/build-binary.mk:348: warning: overriding commands for target 'obj/local/armeabi/objs/xxx/yyy.o'` `C:/NVPACK/android-ndk-r8d/build/core/build-binary.
`C:/NVPACK/android-ndk-r8d/build/core/build-binary.mk:348: warning: overriding commands for target 'obj/local/armeabi/objs/xxx/yyy.o'`
`C:/NVPACK/android-ndk-r8d/build/core/build-binary.mk:345: warning: ignoring old commands for target 'obj/local/armeabi/objs/xxx/yyy.o'`
这些警告对的打印量与源文件和对象的打印量相同
我试着用所有不同的风格来声明本地文件
`LOCAL_SRC_FILES :=
$(LOCAL_PATH)/Directory/source.c
$(notdir $(wildcard $(LOCAL_PATH)/*.c))
$(notdir $(wildcard $(LOCAL_PATH)/Directory/*.c))
$(addprefix DirectoryPrefix/,$(notdir $(wildcard $(LOCAL_PATH)/Directory/*.c)))`
但警告仍然存在。使文档显示:
警告:覆盖目标xxx“”的命令 警告:忽略目标xxx“”的旧命令 GNU make允许每个目标只指定一次命令(双冒号规则除外)。如果为已定义为具有命令的目标发出命令,则会发出此警告,第二组命令将覆盖第一组命令 但我完全无法理解这两者之间的关系。 在处理后,似乎让g++编译这些C文件会出现此警告。
因此,指定此语句:
LOCAL\u CPP\u扩展名:=.c
这使得用g++构建C文件成为可能。因为在使用gcc编译时,不会打印任何警告。请确保已包含清除变量:
include $(CLEAR_VARS)
如果构建任何其他包含正确构建宏的库,如
include $(BUILD_SHARED_LIBRARY)
我在一两天前遇到了这个问题,在添加一个新库时,我忘记了包含其中一个(我认为CLEAR_VARS最有意义),因此它将一些值从主库重新附加到子库,或者反之亦然