Ubuntu安装boost,protobuf、moduo

news2024/12/23 7:33:54

一、Ubuntu安装muduo

muduo库是基于boost开发的,确保先安装了boost(对boost版本有要求),还需要先安装protobufcurl

版本
boost1.70.0
protobuf3.14.0
curl7.74.0
muduo2.0.2

1、Ubuntu安装boost

# 更新资源列表
sudo apt update
# 安装依赖
sudo apt install build-essential python3-dev 
# 下载boost源码1_70_0版本
wget https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.gz
# 解压并切换到解压后目录
tar -xvzf boost_1_70_0.tar.gz
cd boost_1_70_0
# 安装引导boost
./bootstrap.sh
sudo ./b2 install
sudo ldconfig

测试安装成功

#include <boost/regex.hpp>
#include <iostream>

int main() {
    std::string s = "Boost Libraries";
    boost::regex expr{"\\w+\\s\\w+"};
    if (boost::regex_match(s, expr)) {
        std::cout << "Boost is correctly installed and working!" << std::endl;
    } else {
        std::cout << "Boost installation test failed." << std::endl;
    }
    return 0;
}

在这里插入图片描述

2、Ubuntu安装protobuf

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protobuf-cpp-3.14.0.tar.gz
tar -xzf protobuf-cpp-3.14.0.tar.gz
cd protobuf-3.14.0
# 编译安装
./configure
make
sudo make install
sudo ldconfig

在这里插入图片描述

3、Ubuntu安装curl

wget https://curl.haxx.se/download/curl-7.74.0.tar.gz
tar -xzf curl-7.74.0.tar.gz
cd curl-7.74.0
# 编译并安装
./configure
make
sudo make install
sudo ldconfig

在这里插入图片描述

4、Ubuntu安装muduo

# 依赖
sudo apt update
sudo apt install build-essential cmake
# 下载moduo源码2.0.2版本
wget https://github.com/chenshuo/muduo/archive/refs/tags/v2.0.2.tar.gz
# 解压切换到目录
tar -xvzf v2.0.2.tar.gz
cd muduo-2.0.2
# 新建build目录存放编译文件,防止污染源码
mkdir build
cd build
# cmake编译
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig

简单echo服务器测试安装成功

#include <muduo/base/Logging.h>
#include <muduo/net/EventLoop.h>
#include <muduo/net/TcpServer.h>
using namespace muduo;
using namespace muduo::net;

void onConnection(const TcpConnectionPtr &conn) {
 if (conn->connected()) {
   LOG_INFO << "Connection established: " << conn->peerAddress().toIpPort();
 } else {
   LOG_INFO << "Connection closed: " << conn->peerAddress().toIpPort();
 }
}

void onMessage(const TcpConnectionPtr &conn, Buffer *buf,
              Timestamp receiveTime) {
 std::string msg(buf->retrieveAllAsString());
 LOG_INFO << "Received: " << msg;
 conn->send(msg);
}

int main() {
 Logger::setLogLevel(Logger::INFO);
 EventLoop loop;
 InetAddress listenAddr(8888);
 TcpServer server(&loop, listenAddr, "EchoServer");
 server.setConnectionCallback(onConnection);
 server.setMessageCallback(onMessage);
 server.start();
 loop.loop();
}

测试结果为连接后,输入什么服务器就会返回什么。在这里插入图片描述

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

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

相关文章

【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统

摘 要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统城市公交查询管理采取了人工的管理方法…

【第0005页 · 贪心】非递减数列

【前言】本文以及之后的一些题解都会陆续整理到目录中&#xff0c;若想了解全部题解整理&#xff0c;请看这里&#xff1a; 第0005页 非递减数列 今天我们来看一道 LeetCode 上“广泛好评”的一道 Easy 题&#xff01;&#xff01;&#xff01;&#xff08;蓝色是 OJ 平台&…

CentOS 7 升级 OpenSSH 9.8p1

背景 OpenSSH 官方发布安全通告&#xff0c;披露CVE-2024-6387 OpenSSH Server远程代码执行漏洞。 环境 操作系统内核openssh 版本openssl 版本7.8.20033.10.0-11277.4p11.0.2k-fips 安装编译软件和下载 OpenSSH9.8p1 软件包 mkdir -p /data/software cd /data/software/…

安卓13 鼠标右键作返回键,鼠标事件修改

总纲 android13 rom 开发总纲说明 前言 目录 1.前言2.问题分析3.代码分析4.代码修改5.编译1.前言 像有些设备是使用鼠标操作的,但是默认的android 鼠标右键并不是像电脑一样,能够做到,左键是确定,右键是返回

足球比分预测分析理论

走进一个充满欢呼声的体育场&#xff0c;空气中充满了对即将到来的两支强大足球队之间对决的期待。一个引人入胜的问题浮现出来&#xff1a;我们可以在比赛开始之前预测比赛的结果吗&#xff1f; 本文提出了一个基于概率和统计的模型&#xff0c;通过考虑每支队伍的进攻和防守能…

9.2-模型量化学习内容

量化简介 量化是将模型浮点数变为定点数运行的过程。 基本概念 &#xff1a;模型量化可以减少模型尺寸&#xff0c;进而减少在推理时的内存消耗&#xff0c;并且在一些低精度运算较快的处理器上可以增加推理速度。 常见方法&#xff1a;工业界目前最常用的量化位数是8比特&a…

期权权利金要多少?期权保证金和权利金有什么区别?

今天带你了解期权权利金要多少&#xff1f;期权保证金和权利金有什么区别&#xff1f;期权交易中&#xff0c;保证金和权利金是两个核心概念&#xff0c;它们在交易过程中扮演着不同的角色。 期权权利金一般是多少&#xff1f; 期权的买方叫权利金、期权的卖方叫保证金&#…

【Altium Designer脚本开发】——PCB平面绕组线圈 V1.4

PCB平面绕组线圈工具用于生成平面电机线圈&#xff0c;应用场景可参考平面电机的书籍、CNKI论文或平面电机的视频。此工具运行环境在Altium Designer中&#xff0c;可用于Altium Designer全系列的版本中。 以下工具可以定制和试用 原理图文档处理工具 ➡️物料编码自动查找工具…

Fluent 超音速射流噪声仿真分析

1. 摘要 本算例使用ANSYS Fluent 19.0软件&#xff0c;对超音速射流流动进行直接气动声学仿真&#xff0c;文档内包含详细的网格导入、模型选择、材料物性、边界条件、求解参数、后处理的设置。通过仿真计算获得射流流场和射流噪声。 2. 案例描述 本算例仿真的案例为以简化…

【Unity】子物体旋转变形的解决方法

如图&#xff0c;如果父物体缩放不为&#xff08;1, 1&#xff0c;1&#xff09;&#xff0c;则子物体如果有旋转量&#xff0c;则会在对应坐标轴上产生变形。 解决方案是&#xff1a; 在子物体和父物体节点间多增加一个空节点&#xff0c;保证空节点的世界坐标下的缩放为&…

livox MID-360调试(解决ip设置问题)

整体的调试思路参考大疆Livox Mid360 使用指南_mid360中的imu内参-CSDN博客这篇博客。 但是在调试过程中出现了ip地址设置不对导致的报错&#xff1a; 1.livox viewer中看不到点云数据 2.livox SDK2 bind error。 joeyjoey:~/slam/Livox-SDK2/build/samples/livox_lidar_qu…

hugging face 利用现有模型进行预测

本篇主要记录下如何使用hugging face来快速找到我们需要的模型&#xff0c;并通过已有模型来快速实现demo或是功能模块。贴上hugging face 官网链接&#xff1a; hugging face model界面(需要魔法)需要模板代码请跳转流程总结 目录 1.选择模型 2.创建模型处理器对象 3.使用…

JAVA呵护晚年从智慧开始养老护理代办陪诊陪护小程序

呵护晚年&#xff0c;从智慧开始 —— 养老护理代办陪诊陪护小程序全解析 &#x1f475; 【开篇&#xff1a;岁月静好&#xff0c;智慧护航】 随着时光的流转&#xff0c;家中的长辈渐渐步入晚年。如何给予他们最贴心的关怀与照顾&#xff0c;成为了我们心中的头等大事。今天…

【Linux】08.Linux 下的第一个小程序——进度条

一、知识引入 在写我们的进度条之前需要先引入一下小的知识点&#xff1a;换行与回车&#xff0c;认识缓冲区&#xff0c;认识格式化输出 1.1 换行与回车 换行指的是跳转到下一行的同一个位置 回车指的是跳转到本行开头的位置 新起一行就是换行回车 但是日常生活中我们见到的…

驾驭Python与MySQL的桥梁:pymysql的神秘面纱

文章目录 **驾驭Python与MySQL的桥梁&#xff1a;pymysql的神秘面纱**背景&#xff1a;为何选择pymysql&#xff1f;库的简介安装指南简单的库函数使用方法场景应用常见问题与解决方案总结 驾驭Python与MySQL的桥梁&#xff1a;pymysql的神秘面纱 背景&#xff1a;为何选择pym…

Django Admin对自定义的计算字段进行排序

通常&#xff0c;Django会为模型属性字段&#xff0c;自动添加排序功能。当你添加计算字段时&#xff0c;Django不知道如何执行order_by&#xff0c;因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序&#xff0c;则必须告诉Django需要排序的内容。你可以通过在…

Ollama-AI大模型本地运行工具,Windows安装详细步骤

一、关于Ollama 1.1 简介 Ollama是一个专为在本地环境中运行和定制大型语言模型而设计的工具。它提供了一个简单而高效的接口&#xff0c;用于创建、运行和管理这些模型&#xff0c;同时还提供了一个丰富的预构建模型库&#xff0c;可以轻松集成到各种应用程序中。Ollama的目…

MySQL——索引管理

目录 一、索引的概述 1、索引的概念 2、索引的作用 3、索引的副作用 4、创建索引的原则依据 5、索引的分类 二、索引的管理 1、查看索引 2、创建索引 2.1、创建普通索引 2.2、创建唯一索引 2.3、创建主键索引 2.4、创建组合索引 2.5、创建全文索引 3、删除索引 …

Vue3项目开发——新闻发布管理系统(五)

文章目录 七、登录&注册页面设计开发4、后端接口调用4.1 AXIOS请求工具封装4.2 创建 axios 实例①安装 axios② 封装 axios 模块4.3完成 axios 基本配置5 实现 注册功能5.1 创建接口调用js文件5.2 页面中调用注册方法6 实现 登录功能6.1 创建接口调用js文件6.2 页面中调用登…

VirtualBox 中 Ubuntu 系统在桥连模式下网络适配器启动过慢或连接失败

一个&#xff08;无线或有线&#xff09;网卡同时为虚拟机和电脑提供网络。 一、技术基础 网络桥接技术&#xff1a; 网卡可以通过桥接模式与虚拟机的网络接口进行连接。在这种模式下&#xff0c;网卡会创建一个虚拟的网桥&#xff0c;将虚拟机的网络接口与物理网络接口&…