ara*_*EST 5 makefile android-ndk
我试图用g ++编译Android ndk项目中的模块之一,尽管源代码全部在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.mk:345: warning: ignoring old commands for target 'obj/local/armeabi/objs/xxx/yyy.o'`
这些警告对的打印量将与源文件以及对象的打印量一样多。
我尝试用所有不同的样式声明LOCAL_SRC_FILES。
`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)))`
而且警告仍然存在。
Make文档说:
警告:覆盖目标xxx''的命令警告:忽略目标xxx''的旧命令GNU make允许每个目标仅指定一次命令(双冒号规则除外)。如果为已经定义为具有命令的目标提供命令,则会发出此警告,并且第二组命令将覆盖第一组命令。
但我根本不了解这是如何关联的。处理之后,似乎使g ++编译了这些C文件,使此警告出现。
因此,请指定以下语句:
    LOCAL_CPP_EXTENSION := .c
导致使用g ++构建C文件的原因。因为当使用gcc进行编译时,不会打印警告。
确保您已包含明确的变量:
include $(CLEAR_VARS)
如果构建任何其他库,则包含正确的构建宏,例如
include $(BUILD_SHARED_LIBRARY)
我一两天前就遇到过这个问题,在添加一个新库时,我忘记了包含其中一个或另一个(我认为 CLEAR_VARS 最有意义。)因此,它将主库中的一些值重新附加到子图书馆,反之亦然。
| 归档时间: | 
 | 
| 查看次数: | 3861 次 | 
| 最近记录: |