Android ndk Android.mk-如何在源文件夹中执行通配符

Android ndk Android.mk-如何在源文件夹中执行通配符,android-ndk,makefile,Android Ndk,Makefile,这就是我在JNI文件夹中执行通配符的方法 include $(CLEAR_VARS) LOCAL_MODULE := some_module_name LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.cpp)) include $(BUILD_SHARED_LIBRARY) 现在我想用foo.cpp和bar.cpp向JNI-somesrc添加新的源文件夹 include $(CLEAR_VARS) LOCAL_MODULE

这就是我在JNI文件夹中执行通配符的方法

include $(CLEAR_VARS)
LOCAL_MODULE    := some_module_name
LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.cpp)) 
include $(BUILD_SHARED_LIBRARY)
现在我想用foo.cpp和bar.cpp向JNI-somesrc添加新的源文件夹

include $(CLEAR_VARS)
LOCAL_MODULE    := some_module_name
FOLDER_PREFIX = some_scr
LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.cpp)) $(FOLDER_PREFIX)/$(notdir $(wildcard $(LOCAL_PATH)/$(FOLDER_PREFIX)/*.cpp))
include $(BUILD_SHARED_LIBRARY)
但这只会将$(FOLDER_PREFIX)添加到bar.cpp,foo.cpp会获得剥离路径(jni/foo.cpp),当然不会生成

如何修复它

$(addprefix $(FOLDER_PREFIX),$(notdir $(wildcard $(LOCAL_PATH)/$(FOLDER_PREFIX)/*.cpp))`
或者甚至(您真的需要指定
文件夹\u前缀
?):

第二种形式允许使用以下快捷方式:

LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/*/*.cpp)))
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/*/*.cpp)))