Tôi đang cố gắng sử dụng thư viện tăng cường bên trong ứng dụng Android của mình, sử dụng NDK. Tôi đã tìm thấy một vài câu chuyện thành công here và here, nhưng tôi không thể nói như vậy về tôi. Tôi đặc biệt đang cố gắng sử dụng thư viện trong this link, cũng như thư viện chuỗi tăng. Trong đoạn code dưới đây, tôi chỉ cố gắng bao gồm thư viện chủ đề chứ không phải thư viện toán học. Quá trình tôi sử dụng để xây dựng các thư viện tăng là khá nhiều giống như các liên kết đầu tiên tôi đính kèm.Android NDK: Bao gồm thư viện boost C++
Cho đến nay, có vẻ như tôi đã xây dựng thành công các thư viện tăng, nhưng khi tôi chạy ndk-build
, tôi nhận được lỗi sau:
Prebuilt : libboost_thread.a <= <NDK>/sources/
cp: omitting directory `path/to/ndk/sources/boost'
make: *** [obj/local/armeabi/libboost_thread.a] Error 1
Rõ ràng là cp: omitting directory...
là không chính xác một lỗi. Nhưng điều duy nhất tôi nhận được khác hơn là dòng tiếp theo, điều đó không thực sự có ý nghĩa gì cả. Error 1
Dưới đây là tập tin Android.mk tôi:
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)
Và đó cũng là một tập tin Android.mk trong path/to/ndk/sources/boost/
:
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)
Và tập tin Application.mk khiêm tốn của tôi:
APP_ABI := armeabi armeabi-v7a
APP_STL := gnustl_static
APP_CPPFLAGS = -fexceptions
Tôi đã xây dựng thư viện tăng cường bằng cách sử dụng bjam
. Tất cả các tệp libboost_###.a
đều nằm trong thư mục sources/boost/android/lib
.
Lỗi tôi nhận được là gì?
Hầu như tất cả thông tin liên quan đến cài đặt, biên soạn được đề cập ở đây [Hỗ trợ chính thức “Tăng cường thư viện” dành cho Android và iOS? ] (http://stackoverflow.com/questions/14036311/official-boost-library-support-for-android-and-ios) – RDX