首页 > 其他分享 >【一】开始篇

【一】开始篇

时间:2024-08-28 15:25:44浏览次数:9  
标签:include 开始 boost b2 muduo 序列化 安装

概述

之前在暑假有空学习了一下mprpc项目,这是一个基于陈硕大佬写的muduo库、protobuf的分布式rpc框架,现在想整理一下内容(众所周知,学了不整理等于白学)

技术栈

  • 集群和分布式概念以及原理
  • RPC远程过程调用原理以及实现
  • Protobuf数据序列化和反序列化协议
  • Protobuf数据序列化和反序列化协议
  • ZooKeeper分布式一致性协调服务应用以及编程
  • muduo网络库编程
  • conf配置文件读取
  • 异步日志
  • CMake构建项目集成编译环境
  • github管理项目
  • C++11新特性(thread、bind等)

项目环境

ubuntu22.04(muduo、boost、Zookeeper)、VSCode

环境安装

boost库安装

1、去boost官网下载源码

2、解压安装

tar -zxvf boost_1_86_0.tar.gz
# 进入目录
cd boost_1_86_0/

# 运行bootstrap.sh工程编译构建程序,需要等待一会儿
./bootstrap.sh 

# 源码根目录下生成了b2程序,运行b2程序如下
./b2

安装成功会出现这样

最后,再把上面的boost库头文件和lib库文件安装在默认的Linux系统头文件和库文件的搜索路径下,运行下面命令(因为要给/usr目录下拷贝文件,需要先进入root用户)
root@hf-virtual-machine:/home/hf/Env/boost_1_86_0# ./b2 install

安装成功会打印如下信息

3、验证安装是否成功(使用一下C++11的bind()函数)

#include <iostream>
#include <boost/bind.hpp>
#include <string>
using namespace std;

class Print
{
public:
        void print(string name) 
        { 
                cout << name << " is learning Cpp!" << endl; 
        }
};

int main()
{
        Print p;
        auto func = boost::bind(&Print::print, &p, "hao fei");
        func();
        return 0;
}

编译运行后输出

至此,boost库安装完毕!

标签:include,开始,boost,b2,muduo,序列化,安装
From: https://www.cnblogs.com/haof31/p/18384308

相关文章

  • 2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount
    2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount(arr,val)可以返回数组arr中大于val的元素数量。按照以下规则进行n次操作,将nums中的元素分配到两个数组arr1和arr2中:1.第一次操作将nums[1]加入arr1。2.第二次操作将nums[2]加入arr2。3.对......
  • NLP从零开始------14.文本中阶序列处理之语言模型(2)
    3.2长短期记忆        梯度消失问题的一个解决方案是使用循环神经网络的变体——长短期记忆( long short- term memory, LSTM)。        长短期记忆的原理是, 在每一步t, 都保存一个隐状态和一个单元状态( cell state) , 通过单元状态来存储长距离......
  • 蓝桥杯单片机入门(8)—按键控制LED流水灯,加速,减速,暂停,开始
    这回我们讲的是,按键对LED灯的控制,这次是基于上次按键模块的基础上进行了进一步的加工,处理。通过按键,实现对LED流水灯的对应的各种功能。首先,在这里先介绍一个概念,标志位,标志位可以理解为设置的一个变量,这个变量作为标志位去使用,给标志位赋不同的值,执行不同的任务。比如标志位F......
  • 从零开始学习C++之递归
    递归注:此算法与函数有关,如不了解请移步。在wikipedia中,递归的解释是这样的:在C++中,递归就是指在函数中调用函数本身;递归的作用类似于分治,将一个大问题分解为很多小问题进行求解。但是递归的时间复杂度极高,因为要解决很多小问题,所以时间复杂度高达\(O(2^n)\)。使用递......
  • Win11如何找回熟悉的开始菜单、任务栏和右键菜单
    背景公司政策满3年可以换新电脑,前段时间申请了下,到手后发现是Win11系统,配置翻倍,欣然接受,把一些常用的软件都安装上,但是,用了一段时间后,发现右键刷新要点击2次,开始菜单找东西也完全靠搜索,任务栏不可定义了,和以前常用的右下角日历小工具不兼容,如果要和这些用惯好多年的操作sayg......
  • 我请ChatGPT用五岁小孩能懂的方式解释VPN术语——现在我开始担心我的工作了
    作为Tom’sGuide的VPN编辑,本人日复一日地撰写关于最佳VPN的文章。我自认对使VPN运作的基本概念以及隐私软件常用的术语有很好的理解。当然,作为一名作者,我的工作是用简明的方式解释这些内容,帮助你们理解VPN的工作原理,不论读者的专业水平如何。不过,有时候,我也难免会陷入期望值......
  • 从0开始构建LLM应用程序,超详细分步指南!
    大型语言模型(LLM)正迅速成为现代人工智能的基石。然而,目前尚未有既定的最佳实践,所以研究者们没有明确的路线图可遵循,经常陷入困境需要重新开始。在过去两年里,我帮助多个组织利用LLM构建创新应用。通过这段经历,我开发出了一种久经考验的方法来创建创新解决方案(受LLM.org.il社......
  • 从零开始的Pytorch【02】:构建你的第一个神经网络
    从零开始的Pytorch【02】:构建你的第一个神经网络前言欢迎来到PyTorch学习系列的第二篇!在上一篇文章中,我们介绍了PyTorch的基本概念,包括张量、自动求导和JupyterNotebook的使用。在这篇文章中,我们将继续深入,指导你如何使用PyTorch构建一个简单的神经网络并进行训练。这将......
  • 【CSS】从零开始学CSS第二篇:字体属性、文本属性、引入方式
    目录CSS字体属性1.1字体系列1.2字体大小1.3字体粗细1.4文字样式1.5字体复合属性1.6字体属性总结CSS文本属性2.1文本颜色2.2对齐文本2.3装饰文本2.4文本缩进2.5行间距2.6文本属性总结 CSS引入方式3.1CSS的三种样式表3.2内部样式表3.3行内......
  • 【CSS】从零开始学CSS第一篇:简介、基础选择器
    目录CSS简介1.1HTML的局限性1.2CSS-网页的美容师1.3CSS语法规范1.4CSS代码风格1.样式格式书写2.样式大小写3.空格规范CSS基础选择器2.1CSS选择器的作用2.2选择器分类2.3标签选择器2.4类选择器类选择器-多类名2.5id选择器2.7基础选择器总结......