
我从AndroID的角度搜索了互联网,但没有找到很多东西.考虑以下示例,我想将标志TEST3仅应用于文件test3.c.我查看了Per-file CPPFLAGS in Android.mk,但是我找不到任何关于如何将PRIVATE_CPPFLAGS用于一个文件的内容.有任何想法吗?
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODulE := testLOCAL_SRC_fileS := test1.c test2.c test3.cLOCAL_CFLAGS := -DTEST1_2_AND_3include $(BUILD_SHARED_liBRARY)解决方法 实现目标的支持方法是为需要不同参数的C/C++PP文件使用单独的静态库.在这种特殊情况下,修复就像这样简单
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS) LOCAL_MODulE := test3LOCAL_SRC_fileS := test3.cLOCAL_CFLAGS := -DTEST1_2_AND_3 -DTEST3include $(BUILD_STATIC_liBRARY)include $(CLEAR_VARS) LOCAL_MODulE := testLOCAL_SRC_fileS := test1.c test2.cLOCAL_CFLAGS := -DTEST1_2_AND_3LOCAL_WHolE_STATIC_liBRARIES := test3include $(BUILD_SHARED_liBRARY)
还有另一种方法,类似于I forged a while ago
LOCAL_PATH := $(call my-dir)TARGET-process-src-files-Tags += $(call add-src-files-target-cflags,$(LOCAL_TEST3_SRC_fileS),$(LOCAL_TEST3_CFLAGS))include $(CLEAR_VARS) LOCAL_MODulE := testLOCAL_SRC_fileS := test1.c test2.c test3.cLOCAL_CFLAGS := -DTEST1_2_AND_3LOCAL_TEST3_SRC_fileS := test3.cLOCAL_TEST3_CFLAGS := -DTEST3include $(BUILD_SHARED_liBRARY)
如果-Dtest3会这样做,你可以使用另一个Hack:
LOCAL_PATH := $(call my-dir)get-src-file-target-cflags = $(LOCAL_SRC_fileS_TARGET_CFLAGS.) -D$(basename )_defineinclude $(CLEAR_VARS) LOCAL_MODulE := testLOCAL_SRC_fileS := test1.c test2.c test3.cLOCAL_CFLAGS := -DTEST1_2_AND_3include $(BUILD_SHARED_liBRARY)
在How to dynamically get the current compiler target file name in Android.mk’s LOCAL_CFLAGS?中查看更多.
总结以上是内存溢出为你收集整理的仅在Android.mk中的一个文件中添加编译器标志全部内容,希望文章能够帮你解决仅在Android.mk中的一个文件中添加编译器标志所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)