首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用uWebSockets在Windows 10上构建CMake

用uWebSockets在Windows 10上构建CMake
EN

Stack Overflow用户
提问于 2019-12-18 22:24:48
回答 1查看 2.4K关注 0票数 0

我希望在我的uWebSockets项目中使用C++ (UWS)通过网络传输图像。安装程序将在多个操作系统上运行,因此创建构建文件的最佳方法似乎是使用CMake。

然而,我是CMake新手,很难构建UWS。我不明白如何在Windows 10上开始使用官方存储库,所以我找到了另一个储存库,它包括一个CMakeFiles.txt文件和一些依赖项(openssl、zlib、libuv,但由于某种原因它不包括uSockets )。根CMakeFiles.txt包括:

代码语言:javascript
复制
[...] 

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。下面是它发出的错误消息:

代码语言:javascript
复制
[...]
[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上使用它,但我不明白这是如何回答这个问题。它只指出了此页,它说任何特定的构建系统都不会得到官方的支持。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-27 00:44:34

使用add_subdirectory导入依赖项似乎是一个很好的解决方法。当我运行cmake时,我正在接收LNK2019错误。我意识到,我在网上发现的下面的代码片段导致了这个问题,而当我删除它时,系统就可以工作了。

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59400805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档