C++ Boost 等待无法识别

标签 c++ boost c++17 boost-asio

我尝试使用 boost::asio::awaitable 中的 awaitable 但未被识别

error: ‘boost::asio::awaitable’ has not been declared

即使我有 Boost 1.71 并且我在 Ubuntu 19.04 上使用

#include <boost/asio/awaitable.hpp>   //<---- it's working 

boost::asio::awaitable<void> something(){   //<---- error: it's not able to see awaitable

}

这是我的 CMake:

cmake_minimum_required(VERSION 3.14)

project(Project)

message(STATUS "start running cmake...")


set(BOOST_ROOT "boost_1_71_0")
set(Boost_INCLUDE_DIRS "boost_1_71_0")
set(Boost_LIBRARIES "boost_1_71_0/stage/lib")
set(BOOST_SYSTEM "boost_1_71_0/stage/lib/libboost_system.so")
set(BOOST_FILE_SYSTEM "boost_1_71_0/stage/lib/libboost_filesystem.so")


find_package(Boost COMPONENTS system filesystem REQUIRED)
find_package(Boost COMPONENTS system thread)

message(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
message(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}")
message(STATUS "Boost_VERSION: ${Boost_VERSION}")
message(STATUS "BOOST_SYSTEM: ${BOOST_SYSTEM}")
message(STATUS "BOOST_FILE_SYSTEM: ${BOOST_FILE_SYSTEM}")

include_directories(${Boost_INCLUDE_DIRS})

add_executable(ServerMain Plugins/PluginInterface.h Plugins/PluginBinary.cpp Plugins/PluginBinary.h Plugins/PluginString.cpp Plugins/PluginString.h Server/Server.cpp Server/Server.h Server/ServerMain.cpp Server/Session.cpp Server/Session.h)
add_executable(ClientMain Client/Client.cpp Client/Client.h Client/ClientMain.cpp Client/Utils.h)

target_link_libraries(ServerMain ${Boost_LIBRARIES})
target_link_libraries(ClientMain ${Boost_LIBRARIES})

target_link_libraries(ServerMain ${BOOST_FILE_SYSTEM} ${BOOST_SYSTEM} pthread)
target_link_libraries(ClientMain ${BOOST_FILE_SYSTEM} ${BOOST_SYSTEM} pthread)

此外,我正在使用 C++17

知道如何才能完成这项工作吗?

最佳答案

你应该使用 clang++,因为 gcc 7/8/9 不支持协程 ts。

关于C++ Boost 等待无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57938107/

相关文章:

C++11 std::reverse() 的便捷包装器

c++ - 为什么cocos2d-x使用多线程从服务器加载 Sprite 是黑色的

c++ - How to get around GCC ‘*((void*)& b +4)’ may be used uninitialized in this function warning while using boost::optional

c++ - 如何分配/复制一个 Boost::multi_array

c++ - std::array的演绎指南

c++ - 无法从字符串流接收信息

c++ - 如何将无符号值转换为 struct tm?

python - 在 3.3 中加载 python 模块时,我用什么代替 PyString_AsString

c++ - boost::optional 改变了一个隐式函数

c++ - 带有 initializer_list 的可选构造函数