asio c++20 协程在windows下和linux下设定

c++20 协程

无栈协程
co_spawn 创建 1 个新协程
co_await 设置协程可主动让出 CPU 片的代码点

1、windows 下比较简单

在vs2017 里面加上一条c++ 命令
/await 就这样,就可以了

2、linux

linux gcc 的支持比较晚,最早的就是clang和vs c++,但是gcc 10 是支持了,gcc 9 支持的是c++17
在linux gcc下,因为虚拟机经常出问题,使用了windows10的wsl 后,发现很方便,不用像虚拟机那样设置共享文件,所以很方便。

推荐安装wsl

windows安装wsl 后,到windows的应用商店
asio c++20 协程在windows下和linux下设定
安装Ubuntu 20 LTS版本, 速度很快,结束后一条命令:

sudo apt-get update
再一条命令
audo apt-get install build-essential

自带的gcc是9.3 版本,但是c++ 20 必须使用的是gcc 10 版本以上

sudo apt-get install gcc-10 g++10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 60 --slave /usr/bin/g++ g++ /usr/bin/g+±10
其中60 是优先级别,你可以自行设定每个gcc版本的优先级别

ok,写一段代码:

请使用一下编译命令,不出意外,程序编译成功

g++ -std=c++20 -I./include -pthread -fcoroutines -O3 main.cpp -o main

1 -pthread 不是-lpthread
2 加上 -fcoroutines 协程标识

请开始你的c++20 asio 协程吧

上一篇:Boost:异步操作,需要boost :: asio :: async_compose函数的测试程序


下一篇:asio编写异步服务器(C++asio网络库相关)