boost::asio 启用 io_uring(Linux 5.10)队列支持

news/2024/10/18 5:53:45/

欲启用 boost::asio 对于 io_uring 的支持,这需要以下几个先决条件;

1、boost 1.78 及以上发行版本

Revision History - 1.78.0 (boost.org)

2、Linux kernel 5.10 及以上发行版本

3、在预定义头文件(stdafx.h)、或编译器预定义宏(如:cmake、premake 内预定义)

定义下述两个宏,注意是两个缺一不可,宏定义值设为:1。

BOOST_ASIO_HAS_IO_URING = 1

BOOST_ASIO_DISABLE_EPOLL = 1

CMAKE之中可以写下述语句:

方法一:

 target_compile_definitions(main PRIVATEBOOST_ASIO_HAS_IO_URING=1BOOST_ASIO_DISABLE_EPOLL=1)

方法二:

# ADD_DEFINITIONS(-DBOOST_ASIO_HAS_IO_URING=1)

# ADD_DEFINITIONS(-DBOOST_ASIO_DISABLE_EPOLL=1)

Ubuntu 18.04 LTS上面编译需要修改头文件

/usr/include/linux/version.h

把该文件内容替换成下面这个。

//#define LINUX_VERSION_CODE 266002
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define LINUX_VERSION_CODE KERNEL_VERSION(5,10,0)

编译完成之后想要编译epoll版本,在把替换之前得内容还原回去。

编译程序需要添加对于 liburing.a 库得链接,另外 ubuntu 18.04 lts 上面没法安装 liburing,所以需要手动去编译库。

axboe/liburing (github.com)

在 github 上面去下载 release 得包自己编译,目前最新版本是 2.5,内核必须 5.10,否则尝试运行 boost/asio 会出问题,不是链接不上就是崩溃这些问题。


http://www.ppmy.cn/news/1401946.html

相关文章

[报错解决]Type com.baomidou.mybatisplus.extension.ddl.IDdl not present

springboot整合mybatis-plus关键报错信息 在处理mybatis-plus时遇到的问题&#xff0c;现提供解决方案供参考&#xff1a; org.springframework.beans.factory.BeanCreationException: Error creating bean with name com.baomidou.mybatisplus.autoconfigure.MybatisPlusAu…

队列 和 同步状态

文章目录 同步状态阻塞队列如何使用队列来实现广度优先搜索&#xff08;BFS&#xff09;算法条件队列如何使用条件队列实现生产者消费者模型 同步状态 在多线程编程中&#xff0c;同步状态是指用于控制并发访问共享资源的状态。同步状态的正确管理是确保多线程操作安全性和正确…

FastAPI+React全栈开发10 MongoDB聚合查询

Chapter02 Setting Up the Document Store with MongoDB 10 Aggregation framework FastAPIReact全栈开发10 MongoDB聚合查询 In the following pages, we will try to provide a brief introducton to the MongoDB aggregation framework, what it is, what benefits it of…

使用1panel部署Ollama WebUI(dcoekr版)浅谈

文章目录 说明配置镜像加速Ollama WebUI容器部署Ollama WebUI使用问题解决&#xff1a;访问页面空白 说明 1Panel简化了docker的部署&#xff0c;提供了可视化的操作&#xff0c;但是我在尝试创建Ollama WebUI容器时&#xff0c;遇到了从github拉取镜像网速很慢的问题&#xf…

老项目接入kafka消费信息另一种方式

前言 这次跟大家分享kafka消费的另一种接入实现。其实原因是因为目前这个项目的框架太老了&#xff0c;springboot还是1.5的&#xff0c;直接用注解KafkaListener无法消费的问题。我也不想调这个框架&#xff0c;没工时不说&#xff0c;万一再整出兼容性问题&#xff0c;那问题…

java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 疫苗预约管理系统是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使…

二维码门楼牌管理应用平台建设:构建智慧警务新生态

文章目录 前言一、背景与意义二、平台架构与功能设计三、业务地址与标准地址的关联四、数据关联与应用场景五、总结与展望六、挑战与对策 前言 随着信息化技术的快速发展&#xff0c;二维码门楼牌管理应用平台已成为智慧城市建设的重要组成部分。本文将详细探讨如何通过该平台…

boot整合xfire

最近换了项目组&#xff0c;框架使用的boot整合的xfire&#xff0c;之前没使用过xfire&#xff0c;所以写个例子记录下&#xff0c;看 前辈的帖子 整理下 pom文件 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot…