我有一個生成步驟我添加的系統產生我的.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