【发布时间】:2013-02-28 21:17:31
【问题描述】:
我正在尝试使用 NDK 在我的 android 应用程序中使用 boost 库。我发现了几个成功案例here 和here,但我不能说同样的话。我特别想使用this link 中的库,以及boost 线程库。在下面的代码中,我只尝试包含线程库,而不是数学库。我用来构建 boost 库的过程与我附加的第一个链接几乎相同。
到目前为止,我似乎已经成功构建了boost库,但是当我运行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 构建了 boost 库。所有libboost_###.a 文件都在sources/boost/android/lib 文件夹中。
我遇到了什么错误?
【问题讨论】:
-
几乎所有关于安装、编译的信息都在这里介绍[官方“Boost库”支持Android和iOS? ](stackoverflow.com/questions/14036311/…)
标签: android boost android-ndk makefile