一、 编译运行
1. 编译脚本autobuild.h
autobuild.h
#!/bin/bash
set -e
if [ ! -d `pwd`/build ]; then
mkdir `pwd`/build
fi
rm -rf `pwd`/build/*
cd `pwd`/build &&
cmake .. &&
make
#回到根目录
cd ..
if [ ! -d /usr/include/mymuduo ]; then
mkdir /usr/include/mymuduo
fi
for header in `ls *.h`
do
cp $header /usr/include/mymuduo
done
cp `pwd`/lib/libmymuduo.so /usr/lib
ldconfig
sudo ./audobuild.h
2. 运行testnode下的Makefile
Makefile
testserver :
g++ -o testserver testserver.cc -lmymuduo -lpthread -g
clean :
rm -f testserver
cd testnode
make
二、报错处理
报错一
问题分析:poller没有析构函数
poller.cc里加Poller::~Poller() = default;
报错二
分析
- accept参数不合法
- 对返回的connfd没有设置非阻塞,每一个loop采用的都是poller + non-blocking io,但是我们的代码没有设置
修改Socket.cc:
我们写的这个网络库和muduo库本身差别还是挺大的,核心的网络设计模型没有变,最大的好处是脱离了boost库,把所有依赖boost库的全部切换成c++ 11,所以我们写的这个网络库要使用只需要执行编译脚本然后安装把相应的头文件和so库装到系统目录里,就可以直接使用,简单方便。