window下libevent编译及其使用

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动态链接库使用方法 - 黑马网仔 - 博客园

你可能感兴趣的:(网络编程,Good,Tools,libevent)