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

一、CMake安装

Ubuntu Linux 下安装和卸载cmake 3.28.2版本-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_41987016/article/details/135960115?spm=1001.2014.3001.5501二、安装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++网络程序开发♪(^∇^*)啦!!!

四、安装mysql

sudo apt-get install mysql-server =>安装最新版MYSQL服务器
sudo apt-get install libmysqlclient-dev => 安装开发包

ubuntu默认安装最新的mysql,但是初始的用户名和密码是自动生成的,按下面步骤修改mysql的root和用户密码为123456

sudo cat /etc/mysql/debian.cnf

命令解释:-u后面是上面查看的用户名 -p后面紧跟上面查看的密码

sudo mysql -u debian-sys-maint -pXGxB5JwQHPIJuwPw

mysql> update mysql.user set authentication_string=password('123456') where user='root' and host='localhost';
mysql> update mysql.user set plugin='mysql_native_password';
mysql> flush privileges;
mysql> quit;

 

  • 重新启动 mysql
heheda@linux:~$ sudo service mysql restart

 输入设置好的密码:123456

设置编码:vim  /etc/mysql/mysql.conf.d/mysqld.cnf

在最后添加一句:

character-set-server=utf8

查看字符编码 

mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

mysql> 
heheda@linux:~$ sudo netstat -tnap
激活Internet连接 (服务器和已建立连接的)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      738/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1073/sshd           
tcp        0      0 127.0.0.1:42039         0.0.0.0:*               LISTEN      2802/node           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      917/cupsd           
tcp        0      0 0.0.0.0:5112            0.0.0.0:*               LISTEN      2933/next-server    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23431/mysqld        
tcp        0      0 127.0.0.1:34893         0.0.0.0:*               LISTEN      3060/code-0ee08df0c 
tcp        0      0 127.0.0.1:42039         127.0.0.1:56346         ESTABLISHED 2933/next-server    
tcp        0      0 127.0.0.1:56338         127.0.0.1:42039         ESTABLISHED 2745/sshd: heheda@n 
tcp        0      0 127.0.0.1:56346         127.0.0.1:42039         ESTABLISHED 2745/sshd: heheda@n 
tcp        0      0 127.0.0.1:42952         127.0.0.1:34893         ESTABLISHED 3039/sshd: heheda@n 
tcp        0      0 192.168.111.128:22      192.168.111.1:11667     ESTABLISHED 5196/sshd: heheda [ 
tcp        0      0 127.0.0.1:42039         127.0.0.1:56338         ESTABLISHED 2802/node           
tcp        0      0 192.168.111.128:22      192.168.111.1:2303      ESTABLISHED 2964/sshd: heheda [ 
tcp        0     52 192.168.111.128:22      192.168.111.1:11666     ESTABLISHED 5121/sshd: heheda [ 
tcp        0      0 127.0.0.1:34893         127.0.0.1:42952         ESTABLISHED 3060/code-0ee08df0c 
tcp        0      0 192.168.111.128:22      192.168.111.1:2282      ESTABLISHED 2652/sshd: heheda [ 
tcp6       0      0 :::22                   :::*                    LISTEN      1073/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      917/cupsd           
tcp6       0      0 :::5113                 :::*                    LISTEN      2933/next-server    
heheda@linux:~$ 

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

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


debian启动mysql_mysql 安装使用笔记-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_39610759/article/details/112179823

修改表的字符编码:alter table user default character set utf8;
修改属性的字符编码:alter table user modify column name varchar(50) character set utf8;

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ROS机器视觉应用中的关键点

1.ROS图像接口 ​​​​​​ 2.摄像头内参标定 3.ROS&#xff0b;OpenCV物体识别 ​​​ 4.小结

C++学习Day04之对象字节数初探

目录 一、程序及输出1.1 空类字节数1.2 非空类字节数1.3 设置对齐方式的数值 二、分析与总结 一、程序及输出 1.1 空类字节数 #include<iostream> using namespace std;class Person { };void test01() {//空类的sizeof结果是1 原因 每个对象都应该在内存上有独一无二…

项目02《游戏-07-开发》Unity3D

基于 项目02《游戏-06-开发》Unity3D &#xff0c; 接下来做UI框架的逻辑系统&#xff0c;管理器和UI背包&#xff0c; 首先闯将UI框架的两个重要脚本 BasePanel.cs 和 UIManager.cs &#xff0c; 双击BasePanel.cs脚本修改代码&#xff1a; using UnityEngine; pu…

从头开始构建和训练 Transformer(上)

1、导 读 2017 年&#xff0c;Google 研究团队发表了一篇名为《Attention Is All You Need》的论文&#xff0c;提出了 Transformer 架构&#xff0c;是机器学习&#xff0c;特别是深度学习和自然语言处理领域的范式转变。 Transformer 具有并行处理功能&#xff0c;可以实现…

bitcoin core 请求拒绝响应【或者】卡死

日志 经过排查节点日志&#xff0c;发现抛出异常。 tail -f debug.log日志&#xff1a; 2024-02-05T05:56:26Z BlockUntilSyncedToCurrentChain: txindex is catching up on block notifications 2024-02-05T05:56:26Z BlockUntilSyncedToCurrentChain: txindex is catching…

Docker容器化扫描SonarScanner

文章目录 1.SonarQube创建项目1.1 手工创建1.2 创建web_test_learning1.3 选择本地1.4 点击创建1.5 点击继续1.6 项目总揽 2.SonarScanner2.1 获取镜像2.2 启动扫描2.3 页面结果 3.SonarLint3.1 下载SonarLint插件3.2 配置连接到SonarQube3.3 在SonarQube页面“用IDE打开”3.4 …

今日arXiv最热NLP大模型论文:微软提出SliceGPT,删除25%模型参数,性能几乎无损

引言&#xff1a;探索大型语言模型的高效压缩方法 随着大型语言模型&#xff08;LLMs&#xff09;在自然语言处理领域的广泛应用&#xff0c;它们对计算和内存资源的巨大需求成为了一个不容忽视的问题。为了缓解这些资源限制&#xff0c;研究者们提出了多种模型压缩方法&#…

《短链接--阿丹》--技术选型与架构分析

整个短链接专栏会持续更新。有兴趣的可以关注一下我的这个专栏。 《短链接--搭建解析》--立项+需求分析文档-CSDN博客 阿丹: 其实整套项目中的重点,根据上面的简单需求分析来看,整体的项目难题有两点。 1、快速的批量生成短链,并找到对应的存储。 并且要保持唯一性质。…

java基本知识详解

八大基本数据类型 java的数据类型可以说很简洁&#xff0c;只有整型&#xff0c;浮点型&#xff0c;字符型&#xff0c;和布尔型四大种&#xff0c;八小种基本类型。 整型 byte&#xff1a;-2^7 ~ 2^7-1&#xff0c;即-128 ~ 127。1字节。 short&#xff1a;-2^15 ~ 2^15-…

SpringIOC之support模块PropertySourcesPlaceholderConfigurer

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

app对接优量汇收益如何?

优量汇作为国内头部的广告联盟&#xff0c;开发者在对接时要注意哪些方面&#xff1f; AdSet官网 | 聚合SDK广告变现平台-上海神蓍信息科技有限公司 一、优量汇优势&#xff1a; &#xff08;1&#xff09;快速变现&#xff0c;节省对接时间 1、快速变现&#xff0c;节省接…

router路由跳转的两种模板

<router-link><router-link/> <router-view><router-view/> link &#xff1a;链接&#xff0c;联系 view&#xff1a;指看见展现在人们面前的、可以稳定地进行详细审视的事物 将语境拉回到router里&#xff0c;抽象概括一下 router-link就是一个…

Git命令窗口:创建一个.bashrc文件,别名实现git log (代替冗余的指令)查询提交修改日志功能

在我们的用户下创建一个.bashrc文件&#xff0c;然后添加如下代码。即可实现我们命令窗口由于每次想要看到好的效果而输入几条指令的问题。 这里我们就只需要使用 git-log 代替我们的git log。这样在命令窗口看到的效果就清晰明了。

MySQL进阶45讲【12】为什么你的MySQL偶尔会卡一下

1 前言 平时的工作中&#xff0c;不知道大家有没有遇到过这样的场景&#xff0c;一条SQL语句&#xff0c;正常执行的时候特别快&#xff0c;但是有时也不知道怎么回事&#xff0c;它就会变得特别慢&#xff0c;并且这样的场景很难复现&#xff0c;它不只随机&#xff0c;而且持…

Spring Web Header 解析常见错误

在上一章&#xff0c;我们梳理了 URL 相关错误。实际上&#xff0c;对于一个 HTTP 请求而言&#xff0c;URL 固然重要&#xff0c;但是为了便于用户使用&#xff0c;URL 的长度有限&#xff0c;所能携带的信息也因此受到了制约。 如果想提供更多的信息&#xff0c;Header 往往…

树莓派-Ubuntu22.04

树莓派 1 安装Ubuntu系统2 ssh登录3 配置3.1 安装软件3.2 换源3.3 安装桌面3.4 开机脚本 1 安装Ubuntu系统 通过制作sdk&#xff0c;使系统在sdk中运行&#xff1a; 下载制作软件&#xff1a;https://www.raspberrypi.com/software/ 下载Ubuntu镜像&#xff1a;https://cn.ub…

PMP证书的价值对哪些人更有用

在软考和PMP的对比中&#xff0c;许多网友认为软考证书比PMP证书更有含金量&#xff0c;大部分人是从持有证书后获得的实质便利来看的。虽然PMP证书在落户、退税等方面不及软考证书&#xff0c;但也有自身独有的价值。 一&#xff0c;PMP证书作用一览 PMP证书不限制行业、覆盖…

简单的TcpServer(英译中)

目录 一、TCP socket API 详解1.1 socket()1.2 bind()1.3 listen()1.4 accept()1.5 connect 二、TcpServer&#xff08;英译中&#xff09;2.1 TcpServer.hpp2.2 TcpClient.cc2.3 Task.hpp2.4 Thread.hpp2.5 ThreadPool.hpp2.6 makefile2.7 Main.cc2.8 log.hpp2.9 Init.hpp2.10…

Vue - 快速入门(一)

阅读文章可以收获&#xff1a; 1. 明白什么是vue 2. 如何创建一个vue实例 3. vue中的插值表达式如何使用 4. 如何安装vue的开发者工具 Vue 概念 什么是vue&#xff1f; Vue 是一个用于 构建用户界面 的 渐进式 框架 框架优点&#xff1a;大大提升开发效率 (70%↑) 缺点…

Spring Boot3,启动时间缩短 10 倍!

前面松哥写了一篇文章和大家聊了 Spring6 中引入的新玩意 AOT&#xff08;见Spring Boot3 新玩法&#xff0c;AOT 优化&#xff01;&#xff09;。 文章发出来之后&#xff0c;有小伙伴问松哥有没有做性能比较&#xff0c;老实说&#xff0c;这个给落下了&#xff0c;所以今天…