libevent-windows VS2019-cmake 编译笔记

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

说明

本文主要记录个人在使用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编译过程中,出现错误时,可以借助日志提示查找错误的原因。


相关文章
|
6月前
|
缓存 网络协议 数据安全/隐私保护
[运维笔记] - (命令).Windows server常用网络相关命令总结
[运维笔记] - (命令).Windows server常用网络相关命令总结
403 0
|
6月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
640 0
|
1月前
|
监控 Ubuntu Linux
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
这篇文章介绍了如何在Ubuntu和Windows系统中通过设置相同的时区并使用ntp服务来解决时间同步问题。
64 4
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
|
1月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
165 0
|
3月前
|
监控 机器人 Unix
GoLand——windows下如何编译Linux二进制文件
GoLand——windows下如何编译Linux二进制文件
53 1
GoLand——windows下如何编译Linux二进制文件
|
4月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
120 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
4月前
|
存储 安全 数据安全/隐私保护
Windows 32 汇编笔记(一):基础知识
Windows 32 汇编笔记(一):基础知识
|
3月前
|
C++ Windows
Windows下编译64位CGAL
Windows下编译64位CGAL
114 0
|
3月前
|
编译器 Linux C语言
Windows下编译并使用64位GMP
Windows下编译并使用64位GMP
176 0
|
3月前
|
存储 编译器 Linux
Windows 32 汇编笔记(二):使用 MASM
Windows 32 汇编笔记(二):使用 MASM