muduo网络库依赖boost,因此,需要先安装boost。安装完成后,通过muduo网络库的回显程序测试,没问题即可。
我的系统环境:centos 7.6,gcc版本7.3 (Centos7.6 gcc 4.8升级至7.3)
boost安装
复制链接地址
[root@VM-4-17-centos ~]# wget https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.gz
等待下载。下载完成后解压tar -zxvf boost_1_79_0.tar.gz
,解压完成后进入boost_1_79_0目录
执行./bootstrap.sh
按照提示执行./b2
显示successfully
,接下来把boost的头文件和库文件安装到Linux默认目录下,(避免每次使用时都要指定目录)执行./b2 install
(使用root用户)
安装完成,使用测试程序测试:
#include <boost/lambda/lambda.hpp> #include <iostream> #include <iterator> #include <algorithm> int main() { using namespace boost::lambda; typedef std::istream_iterator<int> in; std::for_each( in(std::cin), in(), std::cout << (_1 * 3) << " " ); }
boost安装完成。
muduo安装
muduo网络库的编译需要使用cmake,这里采用cmake3.0及以上版本。
首先通过git克隆muduo网络库:
git clone http://github.com/chenshuo/muduo
修改一下CMakeLists.txt
,muduo中有一些示例,这里注释掉这一行,先不编译示例。
查看README中的构建方式:
运行./build.sh
等待build完成后,执行./build.sh install
可以看到安装在目录../release-install-cpp11
下
现在把include和lib文件夹拷贝到系统目录下,避免每次使用muduo时都要指定目录:
安装完成。
测试
使用muduo/examples/simple/echo
示例程序测试一下:
编译:g++ echo.cc echo.h main.cc -lmuduo_base -lmuduo_net -lpthread -std=c++11 -I ../../../
再打开一个终端,使用nc命令来模拟一个客户端,nc 127.0.0.1 2007
,输入hello gangzi
回显hello gangzi
回到服务端,可以看到:
说明muduo安装成功!!!