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编译过程中,出现错误时,可以借助日志提示查找错误的原因。


相关文章
|
3月前
|
关系型数据库 MySQL 开发工具
windows编译poco c++库
windows编译poco c++库
|
1月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
|
3月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
76 0
|
5月前
|
Go Windows
Go 交叉编译 跨平台编译(windows系统跨平台编译)
Go 交叉编译 跨平台编译(windows系统跨平台编译)
33 0
|
5月前
|
C++ Windows
masscan for windows windows编译masscan
masscan for windows windows编译masscan
141 0
masscan for windows windows编译masscan
|
6月前
|
JSON 开发工具 C++
Windows下用CMake编译JsonCpp及配置(适合新手)
Windows下用CMake编译JsonCpp及配置(适合新手)
270 0
|
6月前
|
API PHP C++
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
234 0
|
1月前
|
前端开发 Unix 开发工具
windows使用cygwin编译Xyce
windows使用cygwin编译Xyce
20 0
|
3月前
|
Linux TensorFlow 算法框架/工具
windows编译TensorFlowServing
windows编译TensorFlowServing
|
3月前
|
Windows
windows 下编译openssl libssh2
windows 下编译openssl libssh2
42 0