本人利用的服务器是2G2核 ubuntu22.04
前置工作
muduo库源码github堆栈地址:
muduo
WIndows和Linux平台的boost源码包下载(zip是Windows版,tar.gz是Linux版,你也可以去boost官网下载最新版本)
Boost C++ Libraries
由于muduo网络库是基于boost的,所以我们需要先编译Boost。
Linux下编译boost库
如果你的资源服务器硬件资源比力好的话,直接按这个步骤来即可:施磊老师博客
如果你的服务器和我的一样设置比力烂,那么可以参考我的设置方案
众所周知,boost库黑白常大的,如果我们之间进行编译耗时好比力久,所以我们先明确:muduo库也只依靠boost库的一部门,所以我们可以进行选择性的编译。步骤如下
1.下载和解压Boost库
起首我们需要从官网下载boost源码,我这里是1.82.0
然后进行解压:
- tar -xzf boost_1_82_0.tar.gz
- cd boost_1_82_0
复制代码 2.初始化Boost构建系统
3.编译与Muduo相关的组建
- ./b2 --with-system --with-thread --with-date_time --with-regex
- #限制并行编译任务数量 -j1 或者 -j2 跟你的cpu核心数有关
- ./b2 --with-system --with-thread --with-date_time --with-regex -j1
复制代码 编译成功后会有以下打印:
4.安装库文件和头文件
利用 b2 工具的 install 命令将编译生成的 Boost 组件安装到系统目次。默认情况下,这些文件会安装到 /usr/local/include 和 /usr/local/lib。
- sudo ./b2 install --with-system --with-thread --with-date_time --with-regex
复制代码 5.安装库缓存
安装完成后,需要更新动态链接库缓存,以便系统能够找到新安装的库文件。执行以下命令:
6.验证安装
验证头文件和库文件是否安装在正确的位置。头文件通常在 /usr/local/include/boost 目次下,库文件在 /usr/local/lib 目次下。
- ls /usr/local/include/boost
- ls /usr/local/lib | grep boost
复制代码 然后创建cpp文件,并且利用g++进行编译,编译时可以指定头文件和库文件的路径,但是由于我们已经把他们放在了系统默认的头文件和库文件目次,所以不指定也是可以编译的,编译脚本如下:
- g++ -I/usr/local/include -L/usr/local/lib -lboost_system -lboost_thread -lboost_date_time -lboost_regex your_program.cpp -o your_program
复制代码 测试代码如下:
- #include <iostream>
- #include <boost/bind.hpp>
- #include <string>
- using namespace std;
- class Hello
- {
- public:
- void say(string name)
- { cout << name << " say: hello world!" << endl; }
- };
- int main()
- {
- Hello h;
- auto func = boost::bind(&Hello::say, &h, "zhang san");
- func();
- return 0;
- }
复制代码 运行打印如下:
- zhang san say: hello world!
复制代码 Linux下编译muduo库
直接看施磊老师的博客就好了:
C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |