【问题标题】:Casablanca cpprestsdk卡萨布兰卡 cpprestsdk
【发布时间】:2020-09-30 16:00:03
【问题描述】:

我正在尝试在 Windows 中开发一个安静的客户端和服务器,并提出 cpprestsdk。我不想使用 Visual Studio,但我无法成功编译我在网上找到的任何示例。

现在我已经下载了https://gitlab.com/eidheim/Simple-Web-Server,但是当我运行cmake -H. -Bbuild 时出现这个错误:

"Could NOT find Boost (missing: Boost_INCLUDE_DIR system thread) (Required
  is at least version "1.53.0")"

即使我得到了提升。

也试过这个:cmake -H. -Bbuild -DBOOST_ROOT="C:\Users\myName\Documents\boost_1_58_0

但我收到此错误: C:/Program Files/CMake/share/cmake 处的 CMake 错误-

3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
  Could NOT find Boost (missing: system thread) (found suitable version
  "1.58.0", minimum required is "1.53.0").

我还用这个 CMakeLists 尝试了一个更简单的例子:

cmake_minimum_required(VERSION 3.4)
project(main)
set(CMAKE_CXX_STANDARD 11)

target_link_libraries(main PUBLIC cpprestsdk)
find_package(cpprestsdk REQUIRED)

add_executable(main main.cpp)
target_link_libraries(main PRIVATE cpprestsdk)

但也会出错。 有人可以帮忙解决这些问题吗? 谢谢

【问题讨论】:

    标签: c++ windows cmake


    【解决方案1】:

    你的 CMakeLists.txt 中有 find_package(Boost REQUIRED) 之类的东西吗?

    除了 -DBOOST_ROOT 之外,您还可以尝试使用 -DBOOST_LIBRARYDIR。

    【讨论】:

    • 感谢您的回复,我已经尝试了您的建议,但仍然收到相同的错误消息。我正在尝试编译这个例子:gitlab.com/eidheim/Simple-Web-Server/-/tree/master 我找不到我做错了什么
    • 可能是您的 cmake 版本的问题,但只是猜测。尝试查找 FindBoost.cmake 文件并将其放在您的 cmake 前缀路径中。它应该为您处理查找提升和设置这些变量。
    • 您也可以尝试打印 ${Boost_INCLUDE_DIR} 以查看实际搜索的目录。
    • 我在 CMake 目录中找到了 FindBoost.cmake。我在项目的 CMakeLists 上的 find_package 之前添加了 set(BOOST_DEBUG ON),因此它列出了所有搜索。我还通过 vcpkg 重新安装了 boost(在这个线程之后:stackoverflow.com/questions/61989414/…)没有运气。错误如下: 找不到 Boost(缺少:Boost_INCLUDE_DIR 系统线程)(至少需要版本“1.53.0”)我是 Cmake 和 cpprest 的新手,我很难理解发生了什么。
    • 很好的发现 - 我假设它列出的目录与您的目录匹配?您可以尝试查看stackoverflow.com/questions/54378962/…。它提到通过移动一些文件来解决这个问题。坚持下去:)
    猜你喜欢
    • 2018-11-14
    • 2015-06-02
    • 2016-11-27
    • 2014-06-11
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多