我是靠谱客的博主 暴躁帆布鞋,最近开发中收集的这篇文章主要介绍libevent android编译,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ndk目录

/usr/local/android-ndk-r10e

libevent版本

libevent-2.0.22-stable

下载地址   https://github.com/libevent/libevent/archive/release-2.0.22-stable.tar.gz

cd /usr/local/libevent-2.0.22-stable

1. 生成event-config.h

SYSROOT=/usr/local/android-ndk-r10e/platforms/android-8/arch-arm
./configure --host=arm-linux-androideabi CC=/usr/local/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc CFLAGS=--sysroot=$SYSROOT

 make  后会生成 event-config.h 

 2. 如果要在android上使用注意修改

include/event2/event-config.h

//#define _EVENT_HAVE_ISSETUGID 1

Android 下面没有   issetugid 函数

 

evutil_rand.c

在 evutil_secure_rng_add_bytes  之前 加上 #ifdef HAVE_ARC4RANDOM_ADDRANDOM

#ifdef HAVE_ARC4RANDOM_ADDRANDOM 
void
evutil_secure_rng_add_bytes(const char *buf, size_t n)
{
    arc4random_addrandom((unsigned char*)buf,
        n>(size_t)INT_MAX ? INT_MAX : (int)n);
}
#endif

 

3. 配置Android.mk文件

vi Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
SRC_DIR :=  /usr/local/libevent-2.0.22-stable
LOCAL_ARM_MODE := arm
LOCAL_MODULE := libevent
LIB_SRC := ${SRC_DIR}/event.c 
        ${SRC_DIR}/evthread.c 
        ${SRC_DIR}/buffer.c 
        ${SRC_DIR}/bufferevent.c 
        ${SRC_DIR}/bufferevent_filter.c 
        ${SRC_DIR}/bufferevent_pair.c 
        ${SRC_DIR}/listener.c 
        ${SRC_DIR}/bufferevent_ratelim.c 
        ${SRC_DIR}/evmap.c 
        ${SRC_DIR}/log.c 
        ${SRC_DIR}/evutil.c 
        ${SRC_DIR}/evutil_rand.c 
        ${SRC_DIR}/select.c 
        ${SRC_DIR}/poll.c 
        ${SRC_DIR}/epoll.c 
        ${SRC_DIR}/signal.c 
        ${SRC_DIR}/event_tagging.c 
        ${SRC_DIR}/http.c 
        ${SRC_DIR}/evdns.c 
        ${SRC_DIR}/evrpc.c 
        ${SRC_DIR}/bufferevent_sock.c 
        ${SRC_DIR}/evthread_pthread.c

LOCAL_SRC_FILES := $(LIB_SRC)
LOCAL_C_INCLUDES := 
        $(SRC_DIR)/include 
        $(SRC_DIR)/compat

LOCAL_CFLAGS += -static -fPIC
include $(BUILD_STATIC_LIBRARY)

mkdir -pv jni

vi jni/Android.mk

include $(CLEAR_VARS)
include $(APP_PROJECT_PATH)/Android.mk

vi jni/Application.mk

APP_PROJECT_PATH := $(call my-dir)/../

APP_STL:=c++_static   # 根据自己的需要修改
APP_CPPFLAGS := -frtti -std=c++11

APP_ABI := armeabi armeabi-v7a arm64-v8a x86
APP_PLATFORM := android-8

4.编译

ndk-build

 

参考

https://blog.csdn.net/phil_gu/article/details/90478721

https://developer.aliyun.com/article/252861

 

最后

以上就是暴躁帆布鞋为你收集整理的libevent android编译的全部内容,希望文章能够帮你解决libevent android编译所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部