libevent arm64 android NDK编译

谷歌目前要求所有库都必须支持arm64架构所以32位libevent不允许上架了。
编译版本
libevent-2.0.22-stable
ndk14b
 

解压libevent-2.0.22-stable
执行
./configure

make
编写 Android.mk

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

LOCAL_SRC_FILES  := $(LIB_SRC)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \
                    $(LOCAL_PATH)/compat
LOCAL_CFLAGS += -pie -fPIE -static -fPIC
include $(BUILD_STATIC_LIBRARY)

3. 编译 Application.mk

APP_STL      := c++_static
APP_CPPFLAGS := -frtti -std=c++11
APP_ABI      := armeabi-v7a arm64-v8a x86
#APP_ABI     := armeabi-v7a

在include/event2/event-config.h
注释以下定义
 

1. error: 'sys/sysctl.h' file not found

   注释定义  #define EVENT__HAVE_SYS_SYSCTL_H 1

2. error: use of undeclared identifier 'fd_mask'

   注释定义  #define EVENT__HAVE_FD_MASK 1

还有其他得只要报错哪个注释哪个就编译完成了。

如果报stderr之类的 标准库的错误,是因为ndk15开始,不在进行标准库同时打包,需将NDK对应API设定为固定版本号如21

编译好的 .a静态库文件

 

链接: https://pan.baidu.com/s/1KfbpEijZbJIzd9OSRUGv3g?pwd=srh5 提取码: srh5 复制这段内容后打开百度网盘手机App,操作更方便哦 
--来自百度网盘超级会员v7的分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值