Debian8下muduo库编译与使用

其实《Linux 多线程服务端编程》已经写得很详细

但是考虑到代码版本的更新和操作系统的不同

可能部分位置会有些许出入 这里做个记录 方便以后学习运行

我使用的虚拟 安装的是debian系统

版本如下

uname -a
Linux debian 3.16.0-4-686-pae #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) i686 GNU/Linux

1 安装依赖库 sudo apt-get install cmake libboost-dev libboost-test-dev libcurl4-openssl-dev libc-ares-dev protobuf-compiler libprotobuf-dev

2 到https://github.com/chenshuo/muduo/ 此处下载最新的muduo代码

3 解压muduo代码 进入解压后的文件夹

我这里是/home/XXX/Desktop/muduo-master

代码默认是release模式

你可以使用BUILD_TYPE=debug 指定为debug模式

我这里使用默认模式

输入 muduo-master# sudo ./build.sh -j2

成功则显示

[ 98%] Built target protobuf_rpc_resolver_server
[100%] Built target inspector_test

 

4 使用install指定将头文件和库安装

sudo ./build.sh  install

成功则显示

-- Installing: /home/XXX/Desktop/build/release-install/include/muduo/curl/Curl.h

 

5 使用样例

使用例子可以从https://github.com/chenshuo/muduo-tutorial

下载解压

不过由于头文件和库的安装位置有点变化 我把其中的muduo-tutorial-master/makefile/Makefile文件修改了下

其中

MUDUO_DIRECTORY ?= $(HOME)/build/install

我修改为

/home/XXX/Desktop/build/release-install

 

 

技术博客 http://blog.youkuaiyun.com/stecdeng 技术交流群 群号码:324164944 欢迎c c++ windows驱动爱好者 服务器程序员沟通交流
### Muduo编译安装 对于希望在Linux平台上进行C++网络编程并使用muduo的情况,可以按照以下说明完成该编译和安装过程[^2]。 #### 准备工作 确保已经安装了必要的依赖项,比如`gcc`, `g++`, 和其他可能需要的支持工具。这些可以通过包管理器来获取,在Debian/Ubuntu系统中通常会执行如下命令: ```bash sudo apt-get update && sudo apt-get install build-essential cmake ``` #### 下载源码 前往[muduo官方GitHub仓](https://github.com/chenshuo/muduo),克隆最新的稳定版本至本地机器: ```bash git clone https://github.com/chenshuo/muduo.git cd muduo ``` #### 配置构建环境 利用CMake作为项目构建系统的生成器,创建一个新的目录用于存放编译产物,并进入此目录运行cmake配置脚本: ```bash mkdir -p build && cd build cmake .. ``` 如果遇到任何错误提示缺少某些头文件或,则需先解决这些问题再继续下一步操作。 #### 执行编译 一旦成功完成了上述步骤之后就可以开始实际的编译流程了。这一步骤同样是在之前创建的那个build文件夹内完成: ```bash make -j$(nproc) ``` 这里的`-j$(nproc)`参数可以让make尽可能多地并发处理多个任务以加快整个编译速度。 #### 安装文件 当所有目标都已正确无误地被编译出来以后,便可以用root权限把它们复制到适当的位置上去供后续程序调用: ```bash sudo make install ``` 默认情况下,muduo会被安装到/usr/local/lib路径下面;当然也可以通过修改CMakeLists.txt中的相应选项来自定义最终的目标位置。 #### 测试验证 为了确认一切正常运作,可以从简单的例子入手尝试编写一段小程序来进行测试。例如,创建名为main.cpp的新文件并将下列代码粘贴进去: ```cpp #include <muduo/net/TcpServer.h> using namespace muduo; int main() { EventLoop loop; InetAddress listenAddr(9981); TcpServer server(&loop, listenAddr, "Test"); server.start(); loop.loop(); } ``` 接着就是将其编译连接成可执行二进制形式: ```bash g++ main.cpp -lmuduo_net -lmuduo_base -lpthread -std=c++11 -o test_server ./test_server ``` 此时应该能够看到服务器端口监听状态表明服务已经开始运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值