2015-10-21 75 views
0

我使用C++使用已经提到NDK Boost库与NDK创建可执行文件时存在问题,这是问题未定义参考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) 

Application.mk

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

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

回答

0

您可能需要添加boost_system库。您可以添加-lboost_system到链接器标志,以找到相关的库符号Android.mk(假设升压内置静态):

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