引言
使用CMake+VS2019编译lbevent的静态链接库,并引入CMake项目。一般选择CMake项目是为了跨平台,而选择在Window系统开发不如直接选择VS进行项目开发。但是,对于却有一定的学习意义。
环境
CMake 3.8+
VS 2019
C++ 14(新手别用17,因为17新增了std::byte类型和libevent中的byte定义冲突,需要改源码!)
libevent release-2.1.12-stable,国内下载地址:libevent git地址
编译
下载 libevent-2.1.12-stable
打开CMake首页配置如下:Configure页面选择VS2019+X64
Finish后第一次生成会报错,没关系选择编译参数后,多Generate几次就行了,最后选择的编译参数如下:
EVENT_DISABLE_OPENSSL 免ssl(没有安装ssl组件的情况)
EVENT_DISABELE_TESTS 免生成测试项目
EVENT_LIBRARYTYPE = STATIC + EVENT_MSVC_STATIC_RUNTIME 生成静态链接库
生成成功后,进入build目录,使用VS2019打开libevent.sln工程。选择ALL_BUILD
CMake项目添加libevent静态库
使用到的头文件
libevent-2.1.12-stable/include目录 + libevent-2.1.12-stable/WIN32-Code目录+libevent-2.1.12-stable/build/include三个目录合一
使用到静态库文件
build/lib/Relase目录下的三个lib文件: event.lib event_core.lib event_shared.lib
另外因为是WIN32环境还需要VS开发的包 Iphlpapi.lib ws2_32.lib wsock32.lib库文件,这些文件VS的开发套件,直接在项目中引用即可!!!
最终项目的目录结构+主CMake配置如下:
PS: 本项目源码的 GIT地址为:cpp_demo git 。注意我打的是Release版本的,要运行项目最好也使用Release模式!!!