4

Asio (Boost なし) は、ヘッダーだけで使用できるはずですよね?

デフォルトでは、Asio はヘッダーのみのライブラリです。( http://think-async.com )

内部的に Asio がまだ Boost に依存していることは理解しています。

これが私のセットアップです。

Android.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)

アプリケーション.mk

APP_STL := stlport_static
APP_CFLAGS += -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB

gatelib.cpp

#include <jni.h>
#include <asio.hpp>

#ifdef __cplusplus
extern "C" 
{
#endif
    // rest of code ...

#ifdef __cplusplus
}
#endif

ビルド スクリプト

@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:

出力

http://pastebin.com/XiJjvNmp

基本的に、私が達成しようとしているのは、Asio を Android で (NDK 経由で) 動作させることです。はい、Boost に含まれている Asio ではなく、Asio 自体だけです。問題は出力に表示されます。私はまったく手がかりがありません..

PS。AsioタグはないのでBoost-Asioタグでとりあえずやってみようと思います。

4

1 に答える 1

5

これが私がしたことです。

アプリケーション.mk

APP_STL := gnustl_static
APP_CFLAGS += -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB
APP_CPPFLAGS += -fexceptions

手がかりとヒントは、スタック オーバーフローのいたるところにありました。組み立てたら、うまくいきました!

于 2013-01-03T10:49:33.767 に答える