如何构建使用boostc++;图书馆 我有一个问题,为Android构建一个本地库,使用Boost C++库。ndk构建生成的link命令指定stdc++之后的boost库,导致对STL元素的一些未定义的引用。我可以通过编辑link命令和移动boost库来消除链接错误(并生成一个工作库),从而在stdc++之前指定它们

如何构建使用boostc++;图书馆 我有一个问题,为Android构建一个本地库,使用Boost C++库。ndk构建生成的link命令指定stdc++之后的boost库,导致对STL元素的一些未定义的引用。我可以通过编辑link命令和移动boost库来消除链接错误(并生成一个工作库),从而在stdc++之前指定它们,boost,makefile,android-ndk,Boost,Makefile,Android Ndk,如何使ndk build在link命令中将boost库放在stdc++之前?(或者有其他解决方案吗?) 为了便于参考,我的Android.mk文件粘贴在下面 谢谢, 什洛米 ===================Android.mk文件===================== LOCAL_PATH := $(call my-dir) DEBUG_SERVER := $(HOME)/upontek_Host_Gen_Dev/Host_Infra/NtrigNetPlatform/DebugSer

如何使ndk build在link命令中将boost库放在stdc++之前?(或者有其他解决方案吗?)

为了便于参考,我的Android.mk文件粘贴在下面

谢谢, 什洛米

===================Android.mk文件=====================

LOCAL_PATH := $(call my-dir)
DEBUG_SERVER := $(HOME)/upontek_Host_Gen_Dev/Host_Infra/NtrigNetPlatform/DebugServer

include $(CLEAR_VARS)

LOCAL_MODULE := ntrig_generic_api

LOCAL_CFLAGS := -DANDROID_NDK -O3 -Wall -c -fmessage-length=0 -Wno-write-strings
ifeq ($(TARGET_ARCH_ABI),x86)
    # x86 causes link error if compiling with -fstack-protector
    LOCAL_CFLAGS += -fno-stack-protector
else
    LOCAL_CFLAGS := -DANDROID_NDK -DBOOST_THREAD_LINUX -DBOOST_HAS_PTHREADS -D_GLIBCXX__PTHREADS -fexceptions
endif

LOCAL_C_INCLUDES += \
    ./inc \
    ../../Common/inc \
    $(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/include \
    $(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/libs/$(TARGET_ARCH_ABI)/include \
    $(BOOST_DIR)/boost_1_45_0 \
    $(DEBUG_SERVER)/Common/inc \
    $(DEBUG_SERVER)/ClientLib/inc

LOCAL_SRC_FILES := \
    ../src/GenericApi.c ../src/DebugClient.cpp

LOCAL_LDLIBS := \
    -L$(BOOST_DIR)/build/lib -lboost_regex-mt -lboost_date_time-mt -lboost_system-mt \
    -lboost_thread-mt

include $(BUILD_STATIC_LIBRARY)

好的,问题解决了。解决方案只需将libstdc++.a添加到boost库列表的末尾,因此linker命令实际上包含该库的两个规范。结果表明,在link命令的两个位置使用相同的库是可以的。

好的,问题解决了。解决方案只需将libstdc++.a添加到boost库列表的末尾,因此linker命令实际上包含该库的两个规范。结果表明,在link命令的两个位置都有相同的库是可以的。

很抱歉主题和描述之间不匹配-应用程序和库中都存在相同的问题。很抱歉主题和描述之间不匹配-应用程序和库中都存在相同的问题。