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

Posted qianbo_insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的应用商店

安装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 协程吧

以上是关于asio c++20 协程在windows下和linux下设定的主要内容,如果未能解决你的问题,请参考以下文章

一个独立的 C++20 协程库

Unity:为啥协程在所有 Start() 函数之后结束?

协程在Socket上的应用

Tornado协程在python2.7如何返回值

Kotlin 协程在 Compose 函数中调用了两次而不是一次

我的协程在 Unity android 应用程序上运行速度较慢