我有一个生成步骤我添加的系统产生我的.cpp文件之一;你可以做类似的事情。
请注意,我被告知我正在做的事情不受Google支持,因此请自担风险。不过,我一直在使用下面的代码超过一年。下面是它会是什么样一个粗略的想法:
LOCAL_PATH:= $(call my-dir)
# this was important for some cases; can't remember if it's important here, but I don't want to steer you wrong if it isn't
REAL_LOCAL_PATH:=$(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := ndkFoo
# again, I'm being paranoid here
REAL_LOCAL_MODULE := $(LOCAL_MODULE)
LOCAL_SRC_FILES := ndkFoo.c
$(REAL_LOCAL_PATH)/obj/local/armeabi/$(REAL_LOCAL_MODULE).so : $(REAL_LOCAL_PATH)/libs/armeabi/libThirdParty.so
$(REAL_LOCAL_PATH)/libs/armeabi/libThirdParty.so : $(PATH_TO_LIB_THIRD_PARTY)/libThirdParty.so
cp $(PATH_TO_LIB_THIRD_PARTY)/libThirdParty.so $(REAL_LOCAL_PATH)/libs/armeabi/libThirdParty.so
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
注意你需要定义PATH_TO_LIB_THIRD_PARTY。
另请注意,复制粘贴可能会也可能不会。制造文件在缩进方面非常挑剔。我会确保“cp”行有一个真正的制表符缩进,并且没有别的缩进。如果“cp”不起作用,那么make可能会委托给CMD,您可以尝试“复制”。
祝你好运。
谢谢,我会试试这个。我也发现这个命令:$(call add-prebuilt-files,EXECUTABLES,$(“Include/libThirdParty.so”)) – goyo
基本上这只是利用了'.mk'文件包含在makefile ,'make'运行它。这些只是普通的'make'依赖项。但是当我们尝试这个技巧时,它在我们的'Android.mk'文件中不适用于我们。我添加了一个答案,记录了对我们有用的东西。 – steveha