其实就是把libevent sample 下的http-server.c 在android emulator 上跑起来
环境:
libevent: libevent-2.0.12-stable
sdk : android-sdk-linux_86 支持到2.01
ndk : android-ndk-r4b-linux-x86
环境:
libevent: libevent-2.0.12-stable
sdk : android-sdk-linux_86 支持到2.01
ndk : android-ndk-r4b-linux-x86
1. 交叉编译
* 将libevent-2.0.12-stable 解压到home下libevent 目录
* 执行: ./configure --prefix=/home/liu/android-ndk-r4b/samples/libevent_install --host=arm-linux CC=~/tools/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=~/tools/arm-2007q3/bin/arm-none-linux-gnueabi-g++
make
make install
所有都安装到--prefix 所指定的目录中
* libevent 的maillist 上有直接用ndk toolchain 交叉编译成功的例子,
改成:
./configure --prefix=/home/liu/android-ndk-r4b/samples/libevent_install -host=arm-eabi CC=arm-linux-androideabi-gcc CPPFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/" CFLAGS="-nostdlib" LDFLAGS="-Wl,-rpath-link=$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/ -L$NDK_ROOT/platforms/android-9/arch-arm/usr/lib/" LIBS="-lc"
听说也可以build成功libevent.so, 但是没弄成功
不过还好文件不多,还是按照ndk 下写andorid make file
* 将libevent-2.0.12-stable 解压到home下libevent 目录
* 执行: ./configure --prefix=/home/liu/android-ndk-r4b/samples/libevent_install --host=arm-linux CC=~/tools/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=~/tools/arm-2007q3/bin/arm-none-linux-gnueabi-g++
make
make install
所有都安装到--prefix 所指定的目录中
* libevent 的maillist 上有直接用ndk toolchain 交叉编译成功的例子,
改成:
./configure --prefix=/home/liu/android-ndk-r4b/samples/libevent_install -host=arm-eabi CC=arm-linux-androideabi-gcc CPPFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/" CFLAGS="-nostdlib" LDFLAGS="-Wl,-rpath-link=$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/ -L$NDK_ROOT/platforms/android-9/arch-arm/usr/lib/" LIBS="-lc"
听说也可以build成功libevent.so, 但是没弄成功
不过还好文件不多,还是按照ndk 下写andorid make file
2. NDK下编译
* 把libevent-2.0.12-stable 解压到home 目录下的libevent-ndk 目录下的jni 目录
* 把前面交叉编译 生成的libevent/include/event2/event-config.h copy
到libevent-ndk/jin/include/event2/ 下
* 修改 event-config.h 如下:
* 写android mk file
./configure 生成的makefile不是人写的,是机器生成的
所以参考makefile.am ,具体jni目录下Android.mk 如下:
* 把libevent-2.0.12-stable 解压到home 目录下的libevent-ndk 目录下的jni 目录
* 把前面交叉编译 生成的libevent/include/event2/event-config.h copy
到libevent-ndk/jin/include/event2/ 下
* 修改 event-config.h 如下:
- /* #undef _EVENT_HAVE_ARC4RANDOM */
- 这句下面加上:
- #define _EVENT_HAVE_ARC4RANDOM
-
- //#define _EVENT_HAVE_FD_MASK 1 这句用//注掉
* 写android mk file
./configure 生成的makefile不是人写的,是机器生成的
所以参考makefile.am ,具体jni目录下Android.mk 如下: