我希望在我的uWebSockets项目中使用C++ (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 ..时,它找不到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需要什么样的文件夹结构才能工作?
更普遍的说,我是在浪费时间在这种替代回购上吗?是否有更好的方法在Windows 10中使用UWS?官方回购有一个问题关于如何在Windows上使用它,但我不明白这是如何回答这个问题。它只指出了此页,它说任何特定的构建系统都不会得到官方的支持。
任何帮助都将不胜感激。
发布于 2019-12-27 00:44:34
使用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()https://stackoverflow.com/questions/59400805
复制相似问题