2013-07-21 2 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 all을 사용하여이 파일을 빌드하는 방법이 있습니까? 그래서

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

... 그리고 :

답변

1

당신은 TARGET_ARCH에게 NDK 빌드에 의해 관리되는 변수를 사용할 수 있습니다.

기본적으로 ndk-build는 Android.mk 파일을 여러 번 호출하여 TARGET_ARCH 변수를 다르게 설정합니다.

+0

TARGET_ARCH 대신 TARGET_ARCH_ABI를 사용했지만 작동하지만 답변에 따라 올바른 선택이 아닐 수도 있습니다. –

+0

아마도 TARGET_ARCH_ABI의 목적에 맞을 것입니다. –

관련 문제