【问题标题】:undefined reference to ndk boost android未定义对 ndk boost android 的引用
【发布时间】:2015-10-21 05:45:51
【问题描述】:

使用已经提到的 ndk 使用 c ++ 中的 BOOST 库创建带有 ndk 的可执行文件时遇到问题,这就是问题

C:\Users\GENERAL\Downloads\Compressed\tcpproxy\proxy\jni>ndk-build
[armeabi] Compile++ thumb: proxy <= tcpproxy_server.cpp
[armeabi] Executable     : proxy
C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//jni/boost_1_56_0/boost/sys
tem/error_code.hpp:322: error: undefined reference to 'boost::system::system_cat
egory()'
C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//jni/boost_1_56_0/boost/thr
ead/exceptions.hpp:51: error: undefined reference to 'boost::system::system_cate
gory()'
C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//jni/boost_1_56_0/boost/asi
o/error.hpp:225: error: undefined reference to 'boost::system::system_category()
'
C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//jni/boost_1_56_0/boost/asi
o/error.hpp:225: error: undefined reference to 'boost::system::system_category()
'
C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//jni/boost_1_56_0/boost/sys
tem/error_code.hpp:221: error: undefined reference to 'boost::system::generic_ca
tegory()'
C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//jni/boost_1_56_0/boost/sys
tem/error_code.hpp:222: error: undefined reference to 'boost::system::generic_ca
tegory()'
collect2.exe: error: ld returned 1 exit status
make.exe: *** [C:/Users/GENERAL/Downloads/Compressed/tcpproxy/proxy//obj/local/a
rmeabi/proxy] Error 1

Android.mk:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) 
LOCAL_C_INCLUDES       += $(LOCAL_PATH)/boost_1_56_0 #patch of include BOOST
LOCAL_MODULE    := proxy
LOCAL_SRC_FILES := tcpproxy_server.cpp
include $(BUILD_EXECUTABLE)

应用程序.mk

APP_CFLAGS += -fexceptions
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION := 4.8
APP_CPPFLAGS := -std=c++11

这是我在编译时遇到的错误。已经调查但找不到解决方案,所以请感谢您的回答以便能够修复它,并且因为生成该错误谢谢

【问题讨论】:

    标签: android c++ boost android-ndk


    【解决方案1】:

    您可能需要添加 boost_system 库。您可以将 -lboost_system 添加到链接器标志中,以在 Android.mk 中查找相关的库符号(假设 boost 是静态构建的):

    LOCAL_STATIC_LIBRARIES = -lboost_system ...
    include $(BUILD_STATIC_LIBRARY)
    

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 2019-03-08
      • 2017-01-12
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      相关资源
      最近更新 更多