精华内容
下载资源
问答
  • libevent windows编译
    2021-04-24 18:37:53

    1、下载并安装 ActivePerl。 

    下载地址:perl下载
    测试安装是否成功:
    切换到安装目录下eg目录,执行perl example.pl,输出Hello from ActivePerl!


    2、下载并安装 Nasm 汇编器,并将 安装路径添加到系统环境变量 Path 中。 
    下载地址:nasm下载 

    3、初始化编译环境(管理员权限,防止openssl安装失败)
    切换到VS安装路径,默认是C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin(64位在对应目录下执行vcvars64.bat)
    执行vcvars32.bat

    4、下载并编译OpenSSL ,切换到解压目录(不区分debug、release)
    下载地址:openssl
        4.1、输入perl Configure VC-WIN32(64:VC-WIN64A) --prefix=存放路径
        4.2、编译OpenSSL:执行nmake -f makefile 
        4.3、编译结果测试:执行nmake test,所有测试执行成功
        4.4、安装:执行nmake -f makefile install(默认安装在C盘OpenSSL下)

    5、下载并编译libevent
    下载地址:libevent源代码下载
        5.1、切换到源代码路径
        5.2、生成vs项目:cmake ../ -DEVENT__DISABLE_MBEDTLS
        5.3、VS打开生成的项目,编译生成库

     

    更多相关内容
  • windows编译libevent

    2022-02-03 17:41:38
    一:先编译zlib源码: ...下载zlib1.2.11解压 2.打开vs2017x86_64交叉编译工具 3.输入nmake命令编译 4.编译成功就会在zlib-1.2.11目录中看到如下exe文件 批处理编译脚本 set VS="C:\Program Files...set OUT=D:\libevent

    一:先编译zlib源码:
    1.http://zlib.net/
    下载zlib1.2.11解压
    2.打开vs2017x86_64交叉编译工具在这里插入图片描述
    3.输入nmake命令编译
    在这里插入图片描述
    4.编译成功就会在zlib-1.2.11目录中看到如下exe文件
    在这里插入图片描述
    批处理编译脚本

    set VS="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
    set OUT=D:\libevent\out\vs2017-32\zlib
    call %VS%
    cd zlib-1.2.11
    nmake /f win32\Makefile.msc clean
    nmake /f win32\Makefile.msc
    md %OUT%\lib
    md %OUT%\bin
    md %OUT%\include
    copy /Y *.lib %OUT%\lib
    copy /Y *.h %OUT%\include
    copy /Y *.dll %OUT%\bin
    copy /Y *.exe %OUT%\bin
    pause
    

    二:编译openssl
    1.在nasm压缩包解压后,将nasm解压文件夹放入环境变量中。
    在这里插入图片描述2.安装perl,安装成功后,环境变量中可以看到perl
    在这里插入图片描述
    3.编译openssl
    在这里插入图片描述
    在这里插入图片描述
    4.有个编译错误需要手动拷贝一下
    在这里插入图片描述
    或者以管理员身份运行交叉命令提示符,然后nmake install

    @echo "开始编译openssl"
    set VS="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
    set OUT=D:\libevent\out\vs2017-32\openssl
    call %VS%
    D:
    cd D:\libevent\openssl-1.1.1
    perl Configure VC-WIN32 --perfix=%OUT%
    nmake clean
    nmake
    nmake install
    @echo "编译openssl结束"
    pause
    

    三:libevent编译
    1.下载libevent-master源码
    2.编译源码
    在这里插入图片描述
    3.更改test下的Makefile.nmake文件
    在这里插入图片描述

    展开全文
  • libevent windows编译

    2018-07-17 14:44:04
    2.打开vs命令行工具进入libevent-2.1.8-stable目录下执行nmake ./Makefile.nmake 只要三个libevent.lib,libevent_core.lib,libevent_extras.lib编译出来即可 下面的命令也可 全量编译:nmake /f Makefile.nmake ...

    1.官网下载http://libevent.org/最新源码
    2.打开vs命令行工具进入libevent-2.1.8-stable目录下执行nmake  ./Makefile.nmake  只要三个libevent.lib,libevent_core.lib,libevent_extras.lib编译出来即可
    下面的命令也可
    全量编译:nmake /f Makefile.nmake [all] //all可以省略,默认是all
    库编译:  nmake /f Makefile.nmake static_libs
    测试编译:nmake /f Makefile.nmake tests
    清理输出:nmake /f Makefile.nmake clean
    3.添加静态lib库和include头文件,头文件要把WIN32-Code下的event-config.h包含进去即可。
    服务端源码:
    #include <stdio.h>
    #include <time.h>
    #include <event2/bufferevent.h>
    #include <event2/buffer.h>
    #include <event2/listener.h>
    #include <event2/util.h>
    #include <event2/event.h>
    #pragma comment(lib,"ws2_32.lib")
    const int PORT = 2500;
    const int BUFFER_SIZE = 1024;

    void listener_cb(struct evconnlistener *, evutil_socket_t,
        struct sockaddr *, int socklen, void *);
    void conn_writecb(struct bufferevent *, void *);
    void conn_readcb(struct bufferevent *, void *);
    void conn_eventcb(struct bufferevent *, short, void *);
    void delay(int ms);

    int main(int argc, char **argv)
    {
        printf("I am server\n");
    #ifdef WIN32
        WSAData wsaData;
        WSAStartup(MAKEWORD(2, 0), &wsaData);
    #endif
        struct sockaddr_in sin;
        memset(&sin, 0, sizeof(sin));
        sin.sin_family = AF_INET;
        sin.sin_port = htons(PORT);

        struct evconnlistener *listener;
        struct event_base *base = event_base_new();
        if (!base)
        {
            printf("Could not initialize libevent\n");
            return 1;
        }
        listener = evconnlistener_new_bind(base, listener_cb, (void *)base,
            LEV_OPT_REUSEABLE | LEV_OPT_CLOSE_ON_FREE, -1,
            (struct sockaddr*)&sin,
            sizeof(sin));

        if (!listener)
        {
            printf("Could not create a listener\n");
            return 1;
        }

        event_base_dispatch(base);
        evconnlistener_free(listener);
        event_base_free(base);

        printf("done\n");
        return 0;
    }

    void listener_cb(struct evconnlistener *listener, evutil_socket_t fd,
        struct sockaddr *sa, int socklen, void *user_data)
    {
        printf("Detect an connection\n");
        struct event_base *base = (struct event_base *)user_data;
        struct bufferevent *bev;

        bev = bufferevent_socket_new(base, fd, BEV_OPT_CLOSE_ON_FREE);
        if (!bev)
        {
            printf("Could not create a bufferevent\n");
            event_base_loopbreak(base);
            return;
        }
        bufferevent_setcb(bev, conn_readcb, conn_writecb, conn_eventcb, NULL);
        bufferevent_enable(bev, EV_READ | EV_WRITE);
        //服务器监听到连接时,给客户端发送第一条消息
        char *reply_msg = "I receive a message from server";
        bufferevent_write(bev, reply_msg, strlen(reply_msg));
    }

    //conn_writecwritecb函数将在bufferevent中的output evbuffer缓冲区发送完成后被调用。
    //此时evbuffer_get_length(output) = 0,说明output evbuffer缓冲区被清空。
    //假设发现有10000条记录要发送出去,1次发送10000条将占用大量内存,所以,我们要分批发送
    //先发送100条数据,假设每条数据为1024字节bufferevent_write(bev,buf,1024 *100);
    //系统在这100条记录发送完成后将调用conn_writecbb回调函数,然后在该函数中循环发送剩下的
    //数据
    void conn_writecb(struct bufferevent *bev, void *user_data)
    {
        //    struct evbuffer *output = bufferevent_get_output(bev);
        //    if (evbuffer_get_length(output) == 0)
        //    {
        //        printf("Output evbuffer is flushed\n");
        //        bufferevent_free(bev);
        //    }
        //delay 1 second
        delay(1000);
        static int msg_num = 1;
        char reply_msg[1000] = { '\0' };
        char *str = "I receive a message from server ";
        memcpy(reply_msg, str, strlen(str));
        sprintf(reply_msg + strlen(str), "%d", msg_num);
        bufferevent_write(bev, reply_msg, strlen(reply_msg));
        msg_num++;
    }

    void conn_readcb(struct bufferevent *bev, void *user_data)
    {
        struct evbuffer *input = bufferevent_get_input(bev);
        size_t sz = evbuffer_get_length(input);
        if (sz > 0)
        {
            char msg[BUFFER_SIZE] = { '\0' };
            bufferevent_read(bev, msg, sz);
            printf("%s\n", msg);
        }
    }

    void conn_eventcb(struct bufferevent *bev, short events, void *user_data)
    {
        if (events & BEV_EVENT_EOF)
        {
            printf("Connection closed\n");
        }
        else if (events & BEV_EVENT_ERROR)
        {
            printf("Got an error on the connection: %s\n", strerror(errno));
        }

        bufferevent_free(bev);
    }

    void delay(int ms)
    {
        clock_t start = clock();
        while (clock() - start < ms);
    }

    客户端找个网络调试工具进行连接即可

    展开全文
  • libevent-2.1.12-stable openssl1.1.1f 在windows环境下使用mingw编译 包含libevent 下的lib、include、bin和openssl的lib、include、bin 自己项目使用
  • 1.编译选项-MT/MD: 类别 说明 静态连接 多线程(/MT) 多线程Release、DLL版运行时库,只能用于Release版本 LIBCMT.lib 多线程调试(/MTd) ...

    1.编译选项-MT/MD:

    类别

    说明

    静态连接

    多线程(/MT)

    多线程Release、DLL版运行时库  ,只能用于Release版本

    LIBCMT.lib

    多线程调试(/MTd)

    多线程Debug、DLL版运行时库 ,只能用于Debug版本

    LIBCMTD.lib

    多线程调试DLL(/MD)

    多线程Release、静态版运行时库 ,只能用于Release版本

    MSVCRT.lib

    多线程调试DLL(/MDd)

    多线程Debug、静态版本运行时库 ,只能用于Debug版本

    MSVCRTD.lib

    2.Window下动态连接和静态连接:

    类别

    后缀

    说明

    动态链接库

    DLL

    包含若干个函数的库文件

    静态链接库

    静态lib

    包含函数代码声明和实现,编译后所有代码都嵌入到宿主程序中。

    动态lib

    相当于.h头文件,是对实现部分(.DLL)的导出部分的声明

    3.libevent编译流程(使用vs2019):

    步骤1:下载源码:http://libevent.org/选择libevent-2.01.10-stable2.1.10版本,并解压

    步骤2:打开x86 Native Tools Command Prompt for VS 2019,并切换到libevent-2.01.10-stable目录下

    步骤3:运行nmake /f Makefile.nmake,编译结束,将libevent-2.01.10-stable目录下产生3个lib文件

    步骤4:

    1.项目下新建Lib目录,将三个lib文件copy到该目录下。

    2.项目下新建Include目录,将libevent-2.01.10-stable\include下的文件和文件夹copy到该目录下,libevent-2.0.21-stable\WIN32-Code下的文件copy到该目录下,2个event2目录下的文件可合并一起

    步骤5:VS开发环境设置

    项目属性设置:

    1.VC++目录:

    包含目录,添加:F:\Projects\LibeventTest\LibeventTest\Include;

    库目录,添加:F:\Projects\LibeventTest\LibeventTest\Lib;

    2.C/C++:

    代码生成-->运行库:多线程调试 (/MTd)(Debug下),多线程 (/MT)(Release下)

    3.连接器:

    输入:ws2_32.lib;wsock32.lib;libevent.lib;libevent_core.lib;libevent_extras.lib;

    ws2_32.lib;wsock32.lib;编译Windows网络相关程序库。

    注意事项:

    1. libevent默认编译是release版本x86库
    2. 如果需要编译debug版本的,修改一下makefile.nmake:
      #CFLAGS=$(CFLAGS) /Ox /W3 /wd4996 /nologo
      修改为:
      #CFLAGS=$(CFLAGS) /D_DEBUG /Od /W3 /wd4996 /nologo
    3. 如果编译成64位,添加一个LIBFLAGS选项 /MACHINE:X64,编译终端变为x64 Native Tools Command Prompt for VS 2019

    参考:

    编程 MD(d)、MT(d)编译选项的区别 - Pkj - 博客园

    windows动态链接库使用方法 - 黑马网仔 - 博客园

    展开全文
  • windows编译libevent

    千次阅读 2018-06-21 18:49:12
    下载libevent-2.1.8-stable.tar.gz,解压到e:\libevent-2.1.8-stable,然后在以下3个文件开头添加一行#define _WIN32_WINNT 0x0500 event_iocp.c evthread_win32.c listener.c 打开VS命令行工具C:\Program Files...
  • windows 编译libevent

    2021-09-24 16:38:43
    windows 10下编译编译环境:windows 10 + VS2017 (1)解压libevent到F:\libevent\libevent-2.1.21-stable (2)打开Microsoft visual studio 2017命令行工具 (3)修改以下三个文件,添加宏定义: 在以下3...
  • libevent windows 编译

    千次阅读 2013-07-09 09:23:06
    [文章作者:张宴 本文版本:v1.0 最后修改... 本文介绍了如何在 Windows 操作系统中,利用微软 Visual Studio 2005 编译生成 Libevent 2.0.10 静态链接库,并利用 Libevent 静态链接库,实现一个简单的 HTTP
  • libevent git地址 下下来之后解压 按照官方文档提示 还要windows 10 没有cmake 去cmake官方 CMake Download | CMake 下载cmake 直接下载的安装包 安装之后 需要根据自己的VS版本选择 我的是2022 具体版本 ...
  • libeventwindows下用visual studio编译时出现error C2894错误的原因与解决方法
  • windows环境编译好的库,可以直接拷贝来用 1、拷贝include下面的所有文件到你所在工程下面。 2、拷贝libevent.lib libevent_extras.lib libevent_core.lib到你所在的库。
  • cmake libevent 编译 windows 开源软件编译bug解决
  • windows编译libevent(2.1.8)及使用

    千次阅读 2018-11-14 14:54:53
    一:获取libevent ...二:编译libevent 我是用的visual studio 2010,当然也可以使用更高的版本 启动后,进入"Libevent-release-2.1.8-stable"所在的目录 直接执行会报如下错误: 按照提示...
  • 软件版本 :libevent-2.1.11-stable.tar.gz libevent目录下: Makefile.nmake LIBFLAGS=/nologo 此行修改成 LIBFLAGS=/nologo /MACHINE:X64 buffer.c #define EVBUFFER_MAX_READ 4096 修改成 ,此处修改...
  • 转自:https://blog.csdn.net/xufeng0991/article/details/44134005libevent是一个常用的网络库,下面就看看在windows下面编译测试的过程吧。一 环境系统:win8.1编译器:VS2013官方下载地址:http://libevent.org/...
  • 编译libevent遇到编译错误

    千次阅读 2019-10-08 16:04:36
    e:\github\libevent-2.1.11-stable\minheap-internal.h(76) : error C2065: “UINT32_MAX”: 未声明的标识符 在该文件中添加#include “stdint.h”
  • Windows编译libevent 64位静态库总结

    千次阅读 2018-02-02 17:25:59
    libevent默认编译为32位lib,若需要编译为64位,则需修改Makefile.nmake文件,在LIBFLAGS处添加 MACHINE:X64(LIBFLAGS=/nologo/MACHINE:X64 )。 4.使用 nmake /f Makefile.nmake编译过程中可能出错及修改...
  • libevent学习之二:Windows编译libevent

    千次阅读 2016-10-17 14:42:19
    Linux下编译参考源码中的README文件即可,这里主要记录Windows下的编译。一.准备工作去官网下载最新的稳定发布版本libevent-2.0.22-stable官网地址:http://libevent.org/二.使用VS2012编译1.解压libevent到C:\Users...
  • 0.编译openssl 如果要完全编译,需要提前编译openssl...openssl windows编译安装步骤: 需要工具visual studio, perl 脚本工具 visual studio 自行安装 perel 工具:下载 ActivePerl-5.24.3.2404-MSWin32-x6...
  • Libevent官网:http://libevent.org/windows 7下编译编译环境:windows 7 + VS2010(1)解压libevent到F:libeventlibevent-2.0.21-stable (请根据你的路径做相关修改)(2)打开Microsoft visual studio 2010命令行工具...
  • 爪机打的,直接看图 解决方式也很简单,见招拆招 在libevent目录下的“minheap-internal.h”里面加一句 “#include<stdint.h>” 完!
  • 之前一直用的是libevent 2.1.4的版本,今天想把libevent的版本更新一下,于是下了一个最新的libevent-...libevent使用cmake编译,下一个windows的cmake,然后打开,如下图 首先,要静态编译,EVENT_LIBRARY_TY
  • Windows 编译libevent

    2017-08-15 23:16:03
    先去github上 git glone https://github.com/libevent/libevent打开后 输入 nmake /f Makefile.nmake然后得到三个lib: 在vs2015中项目属性中添加附加目录:在打开链接器中的输入 看见...到这一步就完成安装 Windows li
  • 准备工作: 1、Perl 建议使用5.30以上版本,本人在使用时发现28的版本好像在配置openssl的时候有问题。...安装后打开vs编译环境(我编译的是vs2010) 验证perl和nasm是否安装成功 编译openssl 进入openssl-1.0.2j目录
  • Windows编译libevent

    千次阅读 2018-03-18 17:25:36
    用cmake在windows编译libevent很简单,但是Github上通过release下载的没有包含cmake脚本GitHub地址:https://github.com/libevent/libevent/releases1.在GitHub上下载源码,我方才下载的是libevent-2.1.8-...
  • 转载至:http://blog.csdn.net/fuyuehua22/article/details/38014345 转载至:... Libevent官网:http://libevent.org/ ...windows 7下编译: ...编译环境: windows 7 + VS2
  • Windows编译Libevent

    2019-10-07 00:07:50
    编译环境:VS2013+Win10 1 下载得到libevent-2.0.22-stable.tar,解压。 2 打开“VS2013开发人员命令提示”工具。 3 命令提示工具中,进入到你的解压目录,运行 nmake /f Makefile.nmake 4 成功后,libevent-2.0...
  • 主要介绍了Windows下实现简单的libevent服务器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,985
精华内容 1,994
关键字:

libevent windows编译