libevent-windows VS2019-cmake 编译笔记

本文详细记录了解决在Windows 10环境下用CMake编译libevent遇到的问题,包括安装步骤、VS2019编译64位版本的方法,并提供了一些实用技巧供初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

本文主要记录个人在使用window10使用cmake编译libevent遇到了一点小问题,这里就简单的记录一下,给cmake编译项目不熟悉的朋友一点帮助

环境

操作系统:Win10
编译环境:VS2019
编译代码:libevent-2.1.11-stable (代码请去github取:libevent源码),个人建议,不用最新版本,使用稳定版本,否则可能在使用上遇到了BUG,不好在网上搜搜资料。

步骤

1.在windows环境下安装cmake,这个没什么问题,都是下一步下一步的操作,自行百度
2.安装openssl(libevent依赖openssl),否则在cmake时会遇到错误
,安装步骤参见安装openssl,推荐第二种方式。
3.将下载的源码解压出来,在主目录下创建一个build文件夹(名字随意,主要是存放编译后的目录)
4.在主目录的cmake目录里添加一个Uninstall.cmake.in,github说明:添加Uninstall.cmake.in,内容如下

if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
  message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
endif()

file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
  message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
  if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
    exec_program(
      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
      OUTPUT_VARIABLE rm_out
      RETURN_VALUE rm_retval
      )
    if(NOT "${rm_retval}" STREQUAL 0)
      message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
    endif()
  else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
    message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
  endif()
endforeach()

5.由于我使用的VS2019,相比于前几个版本的VS,还有点差异,这里先说明怎么编译64位的realease和debug,我没有发现怎么编译成32位版本的(使用cmake --help,可以知道编译VS2019需要使用-A参数来编译需要的32位或者64位的,但是我始终没有成功,如果有成功的朋友,可以告诉我一下)
(1)编译x64的realease版本:

cmake -G "Visual Studio 16 2019"  -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release

(2)编译x64的debug版本:

cmake -G "Visual Studio 16 2019"  ..
cmake --build . 

注意:使用CMD或者git的时候需要在build(刚创建的)目录下使用以上2句命令,…代表上一级目录,.代表当前目录,cmake是使用CMakeLists.txt来进行编译的,如果目录不对,会找不到该文件。从而无法编译

编译的dll和lib文件都在build相应的目录下。

个人总结

当使用cmake时,不知道要如何编译成自己需要的环境时,可以使用cmake --help查看帮助。
在cmake编译过程中,出现错误时,可以借助日志提示查找错误的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值