[英]Build uWebSockets on Windows 10 with CMake
我想在我的 C++ 项目中使用uWebSockets (UWS) 通过网络传输图像。 该设置将在多个操作系统上运行,因此创建构建文件的最佳方式似乎是使用 CMake。
但是,我是 CMake 的新手,并且很难构建 UWS。 我不明白如何开始使用 Windows 10 上的官方存储库,所以我找到了另一个存储库,其中包含一个CMakeFiles.txt
文件和一些依赖项( openssl、zlib、libuv ,但它不包括某些uSockets原因)。 根CMakeFiles.txt
包括:
[...]
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
find_path(LIBUV_INCLUDE_DIR uv.h)
find_library(LIBUV_LIBRARY NAMES uv uv1)
[...]
看起来很简单,但是当我尝试运行mkdir build && cd build; cmake ..
mkdir build && cd build; cmake ..
,它找不到OpenSSL
。 这是它吐出的错误消息:
[...]
[cmake] Could not find a package configuration file provided by "OpenSSL" with any
[cmake] of the following names:
[cmake]
[cmake] OpenSSLConfig.cmake
[cmake] openssl-config.cmake
[...]
上面的错误消息表明我需要为每个库设置一个配置文件。 然而,如果我正确理解find_package
文档,命令本身会在根文件夹下的不同位置搜索库。 find_package
需要什么样的文件夹结构才能工作?
更一般地说,我是不是在用这个替代回购浪费我的时间? 在 Windows 10 上使用 UWS 有没有更好的方法? 官方 repo 有一个关于如何在 Windows 上使用它的问题,但我不明白这是如何回答这个问题的。 它仅指向此页面,其中表示将不正式支持任何特定的构建系统。
任何帮助,将不胜感激。
使用add_subdirectory
导入依赖项似乎是解决此问题的好方法。 当我运行 cmake 时,我收到 LNK2019 错误。 我意识到我在网上找到的以下代码片段导致了问题,当我删除它时系统可以工作。
if(MSVC)
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
endif()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.