在windows和Linux中的安装 boost 以及 安装 muduo

二、安装boost

boost官网:boost官网

我下载的boost版本:

  • windows:boost_1_84_0.zip
  • linux:boost_1_84_0.tar.gz 

2.1 在windows中安装boost和测试

 (1)在windows中,解压这个压缩包boost_1_84_0.zip路径为:D:\boost_1_84_0

  • 在这个路径下有一个文件的文件名是bootstrap.bat:

 运行cmd,切换到D:\boost_1_84_0这个路径,然后D:\boost_1_84_0>bootstrap.bat

(2)接着执行

.\b2

(3)生成b2.exe文件,默认执行b2.exe

D:\boost_1_84_0>b2.exe

(4)打开visual stdio 2022,在创建好的C++项目中,点击项目>属性>VC++目录这里添加路径到包含目录和库目录

  • 包含目录
D:\boost_1_84_0
  • 库目录 
D:\boost_1_84_0\stage\lib

  • main.cpp
#include <iostream>
#include <boost/bind.hpp>
#include <string>
using namespace std;class Person {
public:void say(string name) {cout << name << "说: 三弟你真可爱!" << endl;}
};int main() {Person h;auto func = boost::bind(&Person::say, &h, "关羽");func();return 0;
}

至此,成功验证!!!

2.2 在Linux中安装boost和测试

heheda@linux:~$ cd ~
heheda@linux:~$ pwd
/home/heheda
heheda@linux:~$ mkdir package
heheda@linux:~$ ls
examples.desktop  Linux  llvm.sh  package  projects  vim配置  公共的  模板  视频  图片  文档  下载  音乐  桌面

boost_1_69_0.tar.gz 用 FinalShell等上传文件工具,上传到/home/heheda/package这个目录下

heheda@linux:~$ cd package/
heheda@linux:~/package$ ls
boost_1_84_0.tar.gz 
heheda@linux:~/package$ tar -zxvf boost_1_69_0.tar.gz 
heheda@linux:~/package$ ls
boost_1_84_0  boost_1_84_0.tar.gz
heheda@linux:~/package$ cd boost_1_84_0
heheda@linux:~/package/boost_1_84_0$ ./bootstrap.sh
heheda@linux:~/package/boost_1_84_0$ ./b2
heheda@linux:~/package/boost_1_84_0$ ./b2 install

打开visual stdio 2022,选择Linux,选择控制台应用程序

  • 工具>选项>跨平台>连接管理器

打开visual stdio 2022,在创建好的C++项目中,点击项目>属性>VC++目录这里添加路径到包含目录和库目录

  •  包含目录
/home/heheda/package/boost_1_84_0
  • 库目录 
/home/heheda/package/boost_1_84_0/stage/lib

参考和推荐文章:

C++网络编程 - Boost::asio异步网络编程 - 01- boost库源码编译安装_the boost c++ libraries were successfully built!-CSDN博客https://blog.csdn.net/QIANGWEIYUAN/article/details/88792874

三、muduo库

heheda@linux:~/package$ ls
muduo-master.zip
heheda@linux:~/package$ unzip muduo-master.zip 
heheda@linux:~/package/muduo-master$ ls
BUILD.bazel  build.sh  ChangeLog  ChangeLog2  CMakeLists.txt  contrib  examples  License  muduo  patches  README  WORKSPACE
heheda@linux:~/package/muduo-master$ vim CMakeLists.txt 

 按下i键,注释掉这一行。按ESC键,然后:wq实现保存退出

  • 注意:muduo是用cmake来构建的,所以要先安装cmake 

Ubuntu Linux 下安装和卸载cmake 3.28.2版本-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_41987016/article/details/135960115?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135960115%22%2C%22source%22%3A%22weixin_41987016%22%7D

./build.sh 

heheda@linux:~/package/muduo-master$ ls
BUILD.bazel  ChangeLog2      examples  patches
build.sh     CMakeLists.txt  License   README
ChangeLog    contrib         muduo     WORKSPACE
heheda@linux:~/package/muduo-master$ ./build.sh 
...
[ 93%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/PerformanceInspector.cc.o
[ 95%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/ProcessInspector.cc.o
[ 97%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/SystemInspector.cc.o
[100%] Linking CXX static library ../../../lib/libmuduo_inspect.a
[100%] Built target muduo_inspect

 ./build.sh install

heheda@linux:~/package/muduo-master$ ls
BUILD.bazel  CMakeLists.txt         License  WORKSPACE
build.sh     compile_commands.json  muduo
ChangeLog    contrib                patches
ChangeLog2   examples               README
heheda@linux:~/package/muduo-master$ ./build.sh install
heheda@linux:~/package/muduo-master$ cd ..
heheda@linux:~/package$ ls
muduo-master                build                
muduo-master.zip
heheda@linux:~/package$ cd build
heheda@linux:~/package/build$ ls
release-cpp11  release-install-cpp11
heheda@linux:~/package/build$ cd release-install-cpp11/
heheda@linux:~/package/build/release-install-cpp11$ ls
include  lib
heheda@linux:~/package/build/release-install-cpp11$ 
  •  为了让g++会自动从/usr/include和/usr/local/lib路径下寻找所需要的文件
heheda@linux:~/package/build/release-install-cpp11$ cd include/
heheda@linux:~/package/build/release-install-cpp11/include$ ls
muduo
heheda@linux:~/package/build/release-install-cpp11/include$ sudo mv muduo/ /usr/include/
[sudo] heheda 的密码: 
heheda@linux:~/package/build/release-install-cpp11/include$ cd ..
heheda@linux:~/package/build/release-install-cpp11$ ls
include  lib
heheda@linux:~/package/build/release-install-cpp11$ cd lib/heheda@linux:~/package/build/release-install-cpp11/lib$ ls
libmuduo_base.a  libmuduo_inspect.a
libmuduo_http.a  libmuduo_net.a
heheda@linux:~/package/build/release-install-cpp11/lib$ sudo mv * /usr/local/lib/
heheda@linux:~/package/build/release-install-cpp11/lib$ 

测试代码:参考和推荐这篇文章:

C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装-CSDN博客https://blog.csdn.net/QIANGWEIYUAN/article/details/89023980测试结果:

heheda@linux:~/Linux/Server$ g++ main.cpp -lmuduo_net -lmuduo_base -lpthread -std=c++11
In file included from main.cpp:3:0:
/usr/local/include/boost/bind.hpp:41:1: note: #pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.)^
heheda@linux:~/Linux/Server$ ./a.out
20240131 14:55:09.155231Z 47676 INFO  pid = 47676 - main.cpp:61
20240131 14:56:17.169399Z 47676 INFO  TcpServer::newConnection [EchoServer] - new connection [EchoServer-0.0.0.0:8888#1] from 127.0.0.1:39424 - TcpServer.cc:80
20240131 14:56:17.169444Z 47676 INFO  EchoServer - 127.0.0.1:39424 -> 127.0.0.1:8888 is UP - main.cpp:43
20240131 14:56:17.169460Z 47676 INFO  EchoServer-0.0.0.0:8888#1 echo 12 bytes, data received at 1706712977.169453 - main.cpp:54
heheda@linux:~$ echo "hello world" | nc localhost 8888
hello world

另外,我们也可以在visual stdio 2022来测试muduo是否安装成功。点击项目>属性>链接器>输入>库依赖项

muduo_net
muduo_base
pthread

至此,muduo安装成功,开始正常进行C++网络程序开发♪(^∇^*)啦!!!

另外在ubuntu中,安装mysql文章推荐:

ubuntu 安装 MySql_ubuntu 安装mysql-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_56051805/article/details/127039085

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

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

相关文章

【力扣经典面试题】189. 轮转数组

题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 …

免费的ppt网站分享

前言 相信大学生们深有体会&#xff0c;对于学校而言&#xff0c;好像是任何活动都需要我们做ppt&#xff0c;当你拿着自己辛苦做的ppt去展示现场的时候&#xff0c;你看到别人的ppt比你的还好&#xff0c;此时心情就是毙&#xff0c;当你知道人家不过是仅仅的1个小时不到就完成…

Java编程练习之类的封装

1.把一个Student类封装起来&#xff0c;模拟一个转校生转入新学校后为其制作学生信息的过程。运行结果如下&#xff1a; package zhtestdemo; import java.util.Scanner; import java.text.DecimalFormat; public class demo { //创建类&#xff0c;类名叫demo; private Stud…

使用阿里云的IDaaS实现知行之桥EDI系统的单点登录

&#xff0c;在开始测试之前&#xff0c;需要确定用哪个信息作为“登陆用户的ID字段”。 这个字段用来在完成SSO登陆之后&#xff0c;用哪个信息将阿里云IDaaS的用户和知行之桥EDI系统的用户做对应。这里我们使用了 phonenumber 这个自定义属性。需要在阿里云做如下配置&#x…

c++阶梯之引用与内联函数

1. 引用 1.1 引用概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 语法 类型& 引用变量名(对象名) 引用实体; 示例 很显然&#xff0c;在下面这…

stm32--simulink开发之--timer的学习,硬件输入中断,触发事件

总体的参考链接是&#xff1a; https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ref/timer.html 输入&#xff1a; 1&#xff0c;配置项&#xff1a;Enable frequency input 缩写&#xff1a;freq conunt 说明&#xff1a;“freq count — Frequency…

2024热门游泳耳机排行榜,精选四款游泳耳机品牌

在追求健康生活的今天&#xff0c;游泳成为了许多人健身的首选活动之一。而为了让游泳体验更加愉悦&#xff0c;选择一款适合的游泳耳机显得尤为重要。这不仅能够为游泳者提供动感的音乐&#xff0c;缓解游泳过程中的疲劳感&#xff0c;同时还有助于提高游泳效率。在市场上琳琅…

中文计算机自学指南:打开全栈开发之门 | 开源日报 No.161

PKUFlyingPig/cs-self-learning Stars: 40.3k License: MIT cs-self-learning 是一个计算机自学指南。 该项目旨在提供一本完整的计算机自学指南&#xff0c;帮助初学者通过优质资源快速成长为全能程序员。 主要功能和核心优势包括&#xff1a; 提供丰富的开源课程资源支持多…

案例三:U盘提示格式化?3种方法帮你拯救它

在U盘的使用过程中最尴尬的情况就是遇到“无法打开&#xff0c;需要进行格式化”的提示。此时&#xff0c;我们如何才能在不破坏内部数据的情况下&#xff0c;挽救这个U盘呢&#xff1f; 小编今天就和说3个方法&#xff0c;可以用来解决U盘“无法打开&#xff0c;需要进行格式化…

工作流框架Activiti

工作流框架activiti 实现入住管理&#xff0c;审批流。 实现入退住&#xff0c;涉及多个表单的提交和多个角色的审核&#xff0c;若要实现这些流程的开发&#xff0c;最好的技术选型是使用工作流技术。 工作流(Work Flow)&#xff1a;是一项将系统任务或操作抽取&#xff0c…

Windows10更新失败 错误 0x80070643、KB5034441的解决方法之二

Windows10更新失败 错误 0x80070643、KB5034441 在知乎Windows10更新失败 错误 0x80070643、KB5034441的原因分析和几个解决方法 - 知乎 参考文章进行操作&#xff0c;更详细信息自己看上面链接。 我电脑的硬盘是mbr格式&#xff0c;而且没有划分恢复分区。 Microsoft Windo…

nop-entropy可逆计算入门(1)

第1步&#xff1a;从大佬的gitee&#xff1a;https://gitee.com/canonical-entropy/nop-entropy下载源码&#xff0c;进行本地编译&#xff0c;具体编译看项目下的readme,想偷懒的可以下载我编译后的jar&#xff0c;放到自己的maven仓库 https://pan.baidu.com/s/15qANnrCh5RV…

Node.js的学习1

Node.js简介 浏览器是JavaScript的前端运行环境Node.js是JavaScript的后端运行环境Node.js中无法调用DOM和BOM等浏览器内置API 终端中的快捷键 使用向上箭头&#xff0c;可以快速定位到上一次执行的命令使用tab键&#xff0c;可以快速补全路径使用esc键&#xff0c;可以快速清…

Sentinel 知识总结

Sentinel 知识总结 Sentinel 是阿里巴巴开源的一个轻量级流量控制框架&#xff0c;主要用于保护系统稳定性和流畅性。它提供了多种流量控制策略&#xff0c;包括QPS限流、并发数限流、线程池限流等&#xff0c;并且支持集群限流。此外&#xff0c;Sentinel还提供了熔断降级、系…

学习使用vite+vue3的所遇问题总结

组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default …… setup 是后者的语法糖 在Vue.js中&#xff0c;你可以通过route对象…

USTC ICS(2023Fall) Lab5 Password Verification

LC-3汇编语言 .orig x3000 LOOP1 AND R1,R1,#0ADD R1,R1,#3LEA R0, string1PUTS ;打印string1AND R0,R0,#0ADD R0, R0, #10 OUT ;打印换行符GETCOUT;检查输入的字符是否为W(ASCII码为87)ADD R0,R0,#-16ADD R0,R0,#-16ADD R0,R0,#-16ADD R…

H5网站在线客服小程序源码系统,完全开源可二开 带完整的安装代码包以及搭建教程

互联网的快速发展&#xff0c;H5网站已成为企业与客户沟通的重要渠道。然而&#xff0c;许多H5网站在客户服务方面存在不足&#xff0c;无法及时响应客户的问题和需求。小编给大家分享了一款H5网站在线客服小程序源码系统&#xff0c;旨在为企业提供完善的客户服务解决方案。 …

(自用)learnOpenGL学习总结-高级OpenGL-几何着色器

在顶点着色器和片段着色器中间还有一个几何着色器。 几何着色器的输入是一个图元的一组顶点&#xff0c;在几何着色器中进行任意变换之后再给片段着色器&#xff0c;可以变成完全不一样的图元、可以生成更多的顶点。 #version 330 core layout (points) in; layout (line_str…

案例四:误Ghost分区恢复

1、案例 小王电脑最近有点问题&#xff0c;于是打算将电脑系统重装系统&#xff0c;原本5个分区&#xff0c;第一个区是操作系统区&#xff0c;后4个用户数据区&#xff0c;在一次GHOST时失误&#xff0c;做完发现硬盘只有一个系统区&#xff0c;两个数据区消失了&#xff0c;…

右手螺旋线定则

通电螺线管中的安培定则&#xff08;安培定则二&#xff09;&#xff1a;用右手握住通电螺线管&#xff0c;让四指指向电流的方向&#xff0c;那么大拇指所指的那一端是通电螺线管的N极。