g++10, C++20, boost 1.75.0 :: error: 'awaitable' has not been declared in 'boost::asio'
g++10, C++20, boost 1.75.0 :: error: 'awaitable' has not been declared in 'boost::asio'
我尝试编译示例:echo_server_with_as_single_default.cpp
来自 boost 个示例:
- ubuntu 18.04
- 提升 1.75.0
- g++ 10.1.0
使用以下命令编译&link(我知道这不是最优的,我重用了我正在处理的另一个项目中的 makefile):
g++ -MT bin/.o/src/main.o -MD -MP -MF bin/.d/src/main.d -std=c++20 -Isrc -Ilib/ -g -Wfatal-errors -c -o bin/.o/src/main.o src/main.cpp
g++ -o bin/server bin/.o/src/main.o -lpthread -lrt -lboost_system -lboost_thread -lboost_chrono -lboost_context -lboost_coroutine -DBOOST_COROUTINES_NO_DEPRECATION_WARNING
我收到以下错误:
我尝试了不同的组合,但我遗漏了一些东西。有帮助吗?
error: 'awaitable' has not been declared in 'boost::asio'
22 | using boost::asio::awaitable;
目前,gcc 默认不启用协程。您需要传递 -fcoroutines
编译器开关才能启用它们。这可能很快就会改变,因为它已经适用于当前的 gcc trunk 版本。
参见here(由于godbolt.org中的执行时间上限,我不得不注释掉main中的代码)。
我尝试编译示例:echo_server_with_as_single_default.cpp
来自 boost 个示例:
- ubuntu 18.04
- 提升 1.75.0
- g++ 10.1.0
使用以下命令编译&link(我知道这不是最优的,我重用了我正在处理的另一个项目中的 makefile):
g++ -MT bin/.o/src/main.o -MD -MP -MF bin/.d/src/main.d -std=c++20 -Isrc -Ilib/ -g -Wfatal-errors -c -o bin/.o/src/main.o src/main.cpp
g++ -o bin/server bin/.o/src/main.o -lpthread -lrt -lboost_system -lboost_thread -lboost_chrono -lboost_context -lboost_coroutine -DBOOST_COROUTINES_NO_DEPRECATION_WARNING
我收到以下错误:
我尝试了不同的组合,但我遗漏了一些东西。有帮助吗?
error: 'awaitable' has not been declared in 'boost::asio'
22 | using boost::asio::awaitable;
目前,gcc 默认不启用协程。您需要传递 -fcoroutines
编译器开关才能启用它们。这可能很快就会改变,因为它已经适用于当前的 gcc trunk 版本。
参见here(由于godbolt.org中的执行时间上限,我不得不注释掉main中的代码)。