0

我对构建静态库的 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 all 来构建这个文件?

4

1 回答 1

1

您可以使用由 ndk-build 管理的TARGET_ARCH变量:

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

... 等等。

本质上,ndk-build 将多次“调用”您的 Android.mk 文件,每次都以不同的方式设置TARGET_ARCH变量。

于 2013-07-22T17:14:38.960 回答