目录
第一个报错:禁用 -Werror或将旧式类型转换警告降级
muduo网络库下载:https://github.com/chenshuo/muduo
muduo安装参考:https://blog.youkuaiyun.com/qq_55882840/article/details/145346115
Muduo 网络库介绍
Muduo 是一个基于 Reactor 模式 的现代 C++ 网络库,由 陈硕(Chen Shuo) 开发并开源。它专注于 Linux 多线程 TCP 高性能网络编程,广泛应用于国内互联网公司的后台服务开发。
(1) 高性能
-
基于事件驱动(Reactor 模式),使用
epoll(Linux)实现高并发。 -
非阻塞 IO + 多线程 设计,适合高吞吐量场景。
-
避免动态内存分配(如使用固定大小的缓冲区),减少内存碎片。
(2) 简洁易用
-
提供清晰的 回调机制(基于
std::function和std::bind)。 -
封装了常见的网络操作(如 TCP/UDP 通信、定时器、线程池)。
(3) 线程安全
-
One Loop per Thread 模型:每个线程运行独立的事件循环(EventLoop),避免锁竞争。
-
跨线程任务通过
EventLoop::runInLoop()安全调度。
(4) 跨平台
-
主要支持 Linux(依赖
epoll),也可通过适配层移植到其他平台(如 macOS/Windows)。
编译源码
编译源码对于很多同学来说可能会存在各种报错,这才是最痛苦的,然后就只能去网上寻找资料,当然今天编译源码出错也是从网上去查找各种线索的。
第一个报错:禁用 -Werror或将旧式类型转换警告降级

vim CMakeLists.xt(打开这个文件),并注释掉-Werror

第二个报错:和logstream_test.dir相关错误
make[2]: *** [muduo/base/tests/CMakeFiles/logstream_test.dir/build.make:98:bin/logstream_test] 错误 1
make[1]: *** [CMakeFiles/Makefile2:1493:muduo/base/tests/CMakeFiles/logstream_test.dir/all] 错误 2
make: *** [Makefile:146:all]
# 常见修复方法
sudo apt-get install libgtest-dev # 安装 Google Test
sudo apt-get install libboost-test-dev # 安装 Boost.Test
代码测试
#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>
void onMessage(const muduo::net::TcpConnectionPtr& conn,
muduo::net::Buffer* buf,
muduo::Timestamp time) {
// 收到数据后原样发回
conn->send(buf->retrieveAllAsString());
}
int main() {
muduo::net::EventLoop loop;
muduo::net::InetAddress listenAddr(8888);
muduo::net::TcpServer server(&loop, listenAddr, "EchoServer");
server.setMessageCallback(onMessage);
server.start();
loop.loop(); // 进入事件循环
}
11万+

被折叠的 条评论
为什么被折叠?



