ain*_*ins 4 c++ android boost-asio android-ndk
Asio(没有 Boost)应该只能用于标题,对吗?
默认情况下,Asio 是一个只有头文件的库。( http://think-async.com )
我知道 Asio 在内部仍然依赖于 Boost。
这是我的设置。
安卓.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := gatelib
LOCAL_SRC_FILES := gatelib.cpp
LOCAL_C_INCLUDES += /cygdrive/l/asio-1.5.3/include
LOCAL_C_INCLUDES += /cygdrive/l/boost/boost_1_49_0
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
应用程序.mk
APP_STL := stlport_static
APP_CFLAGS += -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB
Run Code Online (Sandbox Code Playgroud)
门库文件
#include <jni.h>
#include <asio.hpp>
#ifdef __cplusplus
extern "C"
{
#endif
// rest of code ...
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
构建脚本
@echo on
@set BASHPATH="L:\cygwin\bin\bash"
@set PROJECTDIR="/cygdrive/l/AsioAndroid/AsioDemo"
@set NDKDIR="/cygdrive/l/android-ndk-r8c/ndk-build"
%BASHPATH% --login -c "cd %PROJECTDIR% && %NDKDIR%
@pause:
Run Code Online (Sandbox Code Playgroud)
输出
所以基本上,我想要实现的是,让 Asio 在 Android 上工作(通过 NDK)。是的,只是Asio 本身,而不是 Boost 中包含的 Asio。问题显示在输出中。我一点头绪都没有。。
附注。没有 Asio 标签,所以我猜 Boost-Asio 标签现在必须做。
这就是我所做的。
应用程序.mk
APP_STL := gnustl_static
APP_CFLAGS += -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB
APP_CPPFLAGS += -fexceptions
Run Code Online (Sandbox Code Playgroud)
Stack Overflow 上到处都是线索和提示。一旦拼凑起来,它就奏效了!
| 归档时间: |
|
| 查看次数: |
4588 次 |
| 最近记录: |