NDK를 사용하여 내 안드로이드 응용 프로그램 내에서 부스트 라이브러리를 사용하려고합니다. 나는 성공 사례 몇 가지를 발견했다. here과 here, 나에 관해서도 똑같이 말할 수는 없다. 나는 구체적으로 this link에서 라이브러리를 사용하려고하고 있으며, 부스트 스레드 라이브러리도 사용하고있다. 아래 코드에서 수학 라이브러리가 아닌 스레드 라이브러리 만 포함하려고합니다. 부스트 라이브러리를 만드는 데 사용한 프로세스는 제가 첨부 한 첫 번째 링크와 거의 같습니다. Android NDK : 부스트 C++ 라이브러리 포함
지금까지, 내가 성공적으로 부스트 라이브러리를 구축 한 것 같다,하지만 난ndk-build
을 실행할 때, 나는 다음과 같은 오류 얻을 :
Prebuilt : libboost_thread.a <= <NDK>/sources/
cp: omitting directory `path/to/ndk/sources/boost'
make: *** [obj/local/armeabi/libboost_thread.a] Error 1
분명히 cp: omitting directory...
정확히 오류가 아닙니다입니다. 그러나 내가 얻고있는 유일한 것은 다음 라인입니다. 실제로는 아무 의미도 없습니다. Error 1
여기 내 Android.mk 파일입니다 :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_LIBRARIES := boost_thread
LOCAL_LDLIBS := lboost_system-gcc-md lboost_thread-gcc-md -lgnustl_static
LOCAL_LDLIBS += lboost_system-gcc-md lboost_thread-gcc-md \
-L$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi \
-lgnustl_static
LOCAL_SRC_FILES := #cpp_sources
LOCAL_MODULE := com_example_ndkFile_CppMethods
include $(BUILD_SHARED_LIBRARY)
$(call import-module,boost)
그리고 거기 path/to/ndk/sources/boost/
의 Android.mk 파일도있다 :
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= boost_thread
LOCAL_SRC_FILES:= android/lib/libboost_thread.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILT_STATIC_LIBRARY)
는 나의 겸손 Application.mk 파일 :
APP_ABI := armeabi armeabi-v7a
APP_STL := gnustl_static
APP_CPPFLAGS = -fexceptions
나는 bjam
을 사용하여 부스트 라이브러리를 만들었습니다. libboost_###.a
파일은 모두 sources/boost/android/lib
폴더에 있습니다.
내가 얻는 오류는 무엇인가?
설치 및 컴파일에 관한 거의 모든 정보는 여기에서 다룹니다. [공식 "Boost library"Android 및 iOS 지원? ] (http://stackoverflow.com/questions/14036311/official-boost-library-support-for-android-and-ios) – RDX