编译安装muduo库

源文件tar包的下载地址:http://code.google.com/p/muduo/downloads/list,此处以muduo-0.8.2-beta.tar.gz为例。

muduo使用了Linux较新的系统调用(主要是timerfd和eventfd),要求Linux的内核版本大于2.6.28。我自己用Debian 6.0 Squeeze / Ubuntu 10.04 LTS作为主要开发环境(内核版本2.6.32),以g++ 4.4为主要编译器版本,在32-bit和64-bit x86系统都编译测试通过。muduo在Fedora 13和CentOS 6上也能正常编译运行,还有热心网友为Arch Linux编写了AUR文件。

如果要在较旧的Linux 2.6内核上使用muduo,可以参考backport.diff来修改代码。不过这些系统上没有充分测试,仅仅是编译和冒烟测试通过。另外muduo也可以运行在嵌入式系统中,我在Samsung S3C2440开发板(ARM9)和Raspberry Pi(ARM11)上成功运行了muduo的多个示例。代码只需略作改动,请参考armlinux.diff。

muduo采用CMake为build system,安装方法如下:
$ sudo apt-get install cmake

muduo依赖于Boost,也很容易安装:
$ sudo apt-get install libboost-dev libboost-test-dev

muduo有三个非必需的依赖库:curl、c-ares DNS、Google Protobuf,如果安装了这三个库,cmake会自动多编译一些示例。安装方法如下:
$ sudo apt-get install libcurl4-openssl-dev libc-ares-dev
$ sudo apt-get install protobuf-compiler libprotobuf-dev

muduo的编译方法很简单:
$ tar zxf muduo-0.8.2-beta.tar.gz
$ cd muduo/
$ ./build.sh -j2
编译muduo 库和它自带的例子,生成的可执行文件和静态库文件
分别位于../build/debug/{bin,lib}
$ ./build.sh install
以上命令将muduo 头文件和库文件安装到../build/debug-install/{include,lib},以便muduo-protorpc 和muduo-udns 等库使用

如果要编译release版(以-O2优化),可执行:
$ BUILD_TYPE=release ./build.sh -j2

编译muduo 库和它自带的例子,生成的可执行文件和静态库文件
分别位于../build/release/{bin,lib}
$ BUILD_TYPE=release ./build.sh install
以上命令将muduo 头文件和库文件安装到../build/release-install/{include,lib},以便muduo-protorpc 和muduo-udns 等库使用

在muduo 1.0正式发布之后,BUILD_TYPE的默认值会改成release。

编译完成之后请试运行其中的例子,比如bin/inspector_test,然后通过浏览器访问http://10.0.0.10:12345/或http://10.0.0.10:12345/proc/status,其中10.0.0.10替换为你的Linuxbox的IP。

在自己的程序中使用muduo

muduo是静态链接的C++程序库,使用muduo库的时候,只需要设置好头文件路径(例如../build/debug-install/include)和库文件路径(例如../build/debug-install/lib)并链接相应的静态库文件(-lmuduo_net -lmuduo_base)即可。下面这个示范项目展示了如何使用CMake和普通makefile编译基于muduo的程序:https://github.com/chenshuo/muduo-tutorial



注意:如果要在编译程序的时候不带include和lib的路径,直接执行拷贝cp -r muduo /usr/include/ 将build/debug-install/include/muduo拷贝到/usr/include下。
  和 cp * /usr/lib把build/debug-install/lib下的库拷贝到/usr/lib下

### 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、付费专栏及课程。

余额充值