windows 上编译 libevent

libevent 官网下载最新的安装包  libevent-2.1.8-stable.tar.gz

解压


打开 vs2013  命令行环境

我的是这个

VS2013 x64 本机工具命令提示


切换到 前面解压的 libevent 目录

nmake Makefile.nmake


生成了3个lib :

libevent.lib

libevent_core.lib

libevent_extras.lib 


然后报错

NMAKE : fatal error U1073: 不知道如何生成“print-winsock-errors.obj”
Stop.
NMAKE : fatal error U1077: “I:\vs\VC\BIN\amd64\nmake.exe”: 返回代码“0x2”
Stop.


打开 Makefile.nmake 文件

是生成 libevent_openssl.lib  的时候遇到了问题

# OPENSSL_DIR=c:\openssl

SSL_OBJS=bufferevent_openssl.obj

我电脑上压根就没有 openssl 


于是官网下载 openssl : 最新的

openssl-1.1.0f.tar.gz


发现opensll安装得用perl

于是想从官网下载 , 官网打开太慢了,放弃~~

baidu那下了个

ActivePerl_5.16.2.3010812913.msi

双击开始安装


然后安装 openssl

perl Configure VC-WIN64A

网上说的  ms\do_win64a

我的ssl的 ms 下就没这个文件

我按照 ssl 根目录的install 说明

运行了

nmake

nmake test

这些都没有问题

nmake install

时似乎是装上了,但是报了一堆的错,我不知道是否最终安装成功了

类似下面的错误

Cannot find "ASN1_generate_nconf(3)" in podpath: cannot find suitable replacemen
t path, cannot resolve link


继续libevent的安装

libevent 目录,vc命令行

nmake Makefile.make

问题依然  print-winsock-errors.obj 找不到

ok 那就先不搞 ssl 的库吧


就用

libevent.lib

libevent_core.lib

libevent_extras.lib 

生成的这3个库吧

写了个简单的 mian.cc,里面就用了下time

link 失败  链接器一直找不到  libevnt相关的函数 

各种尝试后,放弃


最后我是这样做的。

打开makefile.nmake

参考里面的 目录包含 以及 .c 组织 

我用vs2013建了个控制台程序

把.c 一个个 托到工程里

ok ,问题解决


看就这3行

CORE_OBJS=event.obj buffer.obj bufferevent.obj bufferevent_sock.obj \
bufferevent_pair.obj listener.obj evmap.obj log.obj evutil.obj \
strlcpy.obj signal.obj bufferevent_filter.obj evthread.obj \
bufferevent_ratelim.obj evutil_rand.obj
WIN_OBJS=win32select.obj evthread_win32.obj buffer_iocp.obj \
event_iocp.obj bufferevent_async.obj
EXTRA_OBJS=event_tagging.obj http.obj evdns.obj evrpc.obj

对应的 .c 都搞到工程里即可


稍后我把工程文件上传


这里分享一个小技巧

如果有个别.c没加进工程

链接提示找不到

比如 _event_xxx 找不到 在 xxxx  里引用

Ctrl shift F 然后在libevent源码文件夹搜索关键字  event_xxx  (少了个下划线)

把那个找到的.c 加到工程里即可





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值