2013-07-21 118 views
0

我有一個構建靜態庫的ndk-build腳本存在問題。使用ndk-build構建預構建的靜態庫全部

的問題是,該腳本能讓我們的應用程序的更大的構建腳本,而它與ndk-build all

構建腳本調用的靜態庫包含看起來是這樣的:

# LoadBalancing-cpp 

LOCAL_PATH := $(call my-dir) 

all_static_libraries = common-cpp-static-prebuilt \ 
         photon-cpp-static-prebuilt 

lib_suffix := ${APP_OPTIM}_android_${APP_ABI} 

lib_loadbalancing_cpp_static_name := loadbalancing-cpp-prebuilt-static_${lib_suffix} 

include $(CLEAR_VARS) 
LOCAL_MODULE   := loadbalancing-cpp-static-prebuilt 
LOCAL_SRC_FILES   := lib$(lib_loadbalancing_cpp_static_name).a 
LOCAL_STATIC_LIBRARIES := $(all_static_libraries) 
include $(PREBUILT_STATIC_LIBRARY) 

$(call import-module,common-cpp-prebuilt) 
$(call import-module,photon-cpp-prebuilt) 

的問題是,構建靜態庫需要LOCAL_SRC_FILES指向單個值(庫的路徑),但在這種情況下使用ndk-build all調用時,它將包含多個值(因爲lib_suffix將指向所有可用體系結構)。

有沒有辦法使用ndk-build生成這個文件?

回答

1

您可以使用TARGET_ARCH變量,它由NDK建造管理:

lib_suffix := $(APP_OPTIM)_android_$(TARGET_ARCH) 

...等等。

實質上,ndk-build會多次「調用」您的Android.mk文件,每次設置TARGET_ARCH變量的方式不同。

+0

我用TARGET_ARCH_ABI而不是TARGET_ARCH,它可以工作,但根據你的答案,它可能不是正確的選擇。 –

+0

也許你的目的TARGET_ARCH_ABI適合更好 –