async_simple编译测试(一)

news2024/10/6 6:51:53

前言
async_simple 阿里开源的轻量级 C++ 异步框架
提供了基于 C++20 无栈协程(Lazy)、有栈协程(Uthread) 以及 Future/Promise 等异步组件,能够轻松完成 C++ 异步的开发,广泛应用于阿里的图计算引擎、时序数据库、搜索引擎等系统。

1:准备
下载地址 https://github.com/alibaba/async_simple
ubutu18
需要 clang10 或 gcc10 或 Apple-clang14 及其以上版本(这里准备的gcc11)
cmake 3.15及以上

2:安装
官方安装说明(按照说明,实际操作有点问题)
在这里插入图片描述

gcc11 g++11
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-11 g+±11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-1 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g+±11 110
cmake
sudo snap find cmake
#找到是 3.26.3 最新版(apt-cache madison cmake 得到是3.10.2 无法满足需求)
sudo snap install cmake --classic

make (https://ftp.gnu.org/pub/gnu/make/ 最新版 4.4)
sudo apt-get install make #安装是4.1 (apt-cache 查到是4.1.9 snap 没找到可安装的make)

libaio-dev
sudo apt install libaio-dev -y

使用apt安装gtest、gmock
sudo apt install -y libgtest-dev libgmock-dev
修改为(libgmock-dev 找不到)
sudo apt install -y libgtest-dev gmock

3:编译运行
官方
在这里插入图片描述

cd async_simple # cd 到目录下
mkdir build && cd build
CXX=g++ CC=gcc #这里跟官方说明不一样,
cmake …/ -DCMAKE_BUILD_TYPE=Debug -DASYNC_SIMPLE_ENABLE_TESTS=OFF -DASYNC_SIMPLE_BUILD_DEMO_EXAMPLE=OFF -DASYNC_SIMPLE_DISABLE_AIO=ON

make test (已备忽略了) make install #这里暂时没执行 需要时,直接拷贝过去就行

4:编译DEMO工程

1>async_simple 拷贝到 demo 目录下 主要是 头文件
在这里插入图片描述
2> 上面的 async_simple 毕竟没执行 make install ,所以需要指定头文件路径及 库文件路径
还有就是增加 pthread
在这里插入图片描述

cmake …/
make

在这里插入图片描述

5:测试运行
期待 c++23 ,c++26早点出来,感觉不像go的协程那么方便使用
在这里插入图片描述
如果觉得有用,麻烦点个赞,加个收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Microsoft Edge使用方法和心得

Microsoft Edge 使用方法和心得 本文目录: 一、写在前面的话 二、Edge浏览器简介 三、Microsoft Edge性能 3.1、睡眠标签 3.2、启动加速 3.3、清晰度提升 四、Microsoft Edge游戏特性 五、高效工作 5.1、标签页组 5.2、垂直标签 5.3、集锦 5.4、边栏 5…

Google I/O 2023 - Dart 3 发布,快来看看有什么更新吧

核心原文链接: https://medium.com/dartlang/announcing-dart-3-53f065a10635 自从 Flutter Forword 发布了 Dart 3α 预览 之后,大家对 Dart 3 的正式发布就一直翘首以待,这不仅仅是 Dart 版本号追上了 Flutter 版本号,更是 Dart…

【数据结构】- 教你一步完美应对面试官让你10分钟内实现带头双向循环链表(下)

文章目录 前言🌟一、面试官让你十分钟内实现带头双向循环链表🌟二、对链表的清晰认知🌟三、根据上述步骤简单实现🌏3.1结构:🌏3.2查找(LTFind)LTEraseLTInsert:🌏3.3头插:&#x1f4…

为什么要做计划跟踪:没有计划,就没有控制

日常工作中,我们每天都被大量的信息和任务填满,常常由于任务繁冗复杂,让人陷入一种无所适从的状态。 我们经常会看到很多如何安排工作计划的教程,比如: 要把大的项目分解为小目标,小目目标再分解为日常任务…

【技术干货】PCB焊盘设计之问题详解

SMT的组装质量与PCB焊盘设计有直接的关系,焊盘的大小比例十分重要。如果PCB焊盘设计正确,贴装时少量的歪斜可以再次回流焊纠正(称为自定位或自校正效应),相反,如果PCB焊盘设计不正确,即使贴装位置十分准确,…

十分钟教你搭建类似ChatGPT的安卓应用程序

大家好,我是易安! Chat GPT 是当今著名的人工智能工具,就像聊天机器人一样。Chat GPT会回答发送给它的所有查询。今天,我将通过集成 OpenAI API (ChatGPT)构建一个简单的类似 ChatGPT 的 android 应用程序,我们可以在其…

【docker_centos7】docker在centos7中如何安装??

Docker ???What??? Docker是一种开源的容器化平台,可以让开发者轻松地构建、打包、运输和部署应用程序。Docker容器是轻量级的、可移植的、自包含的软件包,其中包含了应用程序和其所…

Pytorch pth 格式转ONNX 格式

目录 背景介绍 安装依赖库 转换成onnx 格式 ONNX 转换成TensorRT 格式 背景介绍 PyTorch 训练的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一个比较好的方式是把它转换成ONNX 格式,然后在通过ONNX …

给Debian 11系统,添加右键时,使用其它程序打开】

VS Code 添加到文件管理器的右键菜单中 在 Debian 系统中,nautilus-actions 软件包已经被移除了。因此,如果你想将 VS Code 添加到文件管理器的右键菜单中,你需要使用 nautilus-admin 工具。下面是详细步骤: 打开终端应用程序。运…

弃用 Docker 后!哪几种超好用的容器工具能替代?

2020 年底,Kubernetes 发布了公告,官方宣布从 v1.24 开始停止对 Docker 的支持。然而,Kubernetes 弃用 docker 对我们的影响不应过于恐慌。 有以下几种工具可以替代 Docker ?并且相比 Docker 都有哪些优点? containe…

JRebel插件热部署快速入门教程

文章目录 引入插件安装插件激活打开激活窗口激活插件 插件使用设置项目热更新热更新说明演示热更新 引入 Jrebel能够非常方便的帮助我们进行项目的热更新,尤其是前端也嵌在后端工程中的单体项目,热更新能减少一半的开发时间,这里我们演示一下…

分布式缓存Redis 面试突击

Redis分布式锁 单机版 关于 synchronized 和trylock的区别 前者 是 不见不散 我一定要等到你 后者是 过时不候 我尝试一下 获取不到就算了 可以设置一个时间 这个时间范围内获取不到就算了 用缓存两个目的:高性能与高并发 高性能:减少了查询…

使用Linkage Mapper制作环境连接图

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 引言一. 简介1.1 Linkage Mapper 概述1.2 环境连接…

基于html+css的图展示55

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

DJ5-8 磁盘存储器的性能和调度

目录 5.8.1 磁盘性能简述 1、磁盘的结构和布局 2、磁盘的类型 3、磁盘数据的组织和格式 4、磁盘的访问过程 5、磁盘访问时间 5.8.2 磁盘调度算法 1、先来先服务 FCFS 2、最短寻道时间优先 SSTF 3、扫描算法(电梯算法)SCAN 4、循环扫描算法 …

4 IK分词器

4 IK分词器 4.1测试分词器 在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终 找到词关联的文档。 测试当前索引库使用的分词器: post 发送&#xff…

Python计算语义分割模型的评价指标

目录 一、混淆矩阵 二、分类指标 1、Accuracy(准确率) 2、Precision(查准率) 3、Recall (查全率) 4、F1-score 三、语义分割的评价指标 1、MPA(类别平均像素准确率) 2、IoU(交并比) 3、MIoU(平均交并比) 4…

STL-stack容器和queue容器

stack概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 与queue相似,stack也是一个适配器类,它给底层vector提供了典型的栈接…

C语言——数组

哈喽,大家好,今天我们要学习的是数组的相关知识。 目录 1.什么是数组 2.一维数组 2.1一维数组的创建和初始化 2.2一维数组的使用 2.3一位数组在内存中的存储 3.二维数组 3.1二维数组的创建和初始化 4.2二维数组的使用 4.3二位数组在内存中的存储…

java安全编码规范(0)

JAVA安全编码标准 有这么一指导书,新手可以去看看,这里主要从实践总结,随时会更新。 主要从十个方面去了解下,实际上远远不只这些哦。 ​​​​​​​ 1、引用java security library 环境需求 Java 8Maven 3 a、编译jar包&a…