2013-07-21 66 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适合更好 –