要想认识一个框架,首先要做的就是让它跑起来。
skynet是一款基于C跟lua的开源服务端并发框架,这个框架是单进程多线程模型,主要应用于游戏服务端领域,是lua大神云风所写的。本文不涉及框架过多的理论知识,只是简单的介绍一下如何编译以及运行skynet。
skynet开源项目地址:
https://github.com/cloudwu/skynet
源码下载
git clone https://github.com/cloudwu/skynet.git
由于github是国外网站,下载速度可以能比较忙,需要耐心等待。如果担心与远程的机子断线的话,可以加个&符号,让它在后台运行,慢慢下载。
编译之前需要安装相关的依赖库,以下依赖库无法安装的童鞋需要自行google解决。
yum install -y readline-devel
yum install -y autoconf
下载完之后,就可以开始编译
cd skynet
这时候如果你直接make的话会报以下错误
意思就是说需要添加一个系统名称,正常一般都是linux系统
make linux
如果是mac系统
make macosx
在编译的过程,如果你的网速很慢的话,经常会碰见这样的一个问题。
fatal: unable to access ‘https://github.com/jemalloc/jemalloc.git/‘: I/O operation timed out
fatal: clone of ‘https://github.com/jemalloc/jemalloc.git‘ into submodule path ‘/app/process/skynet/3rd/jemalloc‘ failed
Failed to clone ‘3rd/jemalloc‘ a second time, aborting
这个意思好像就是说IO操作超时,可能就是机器网速太慢了。
正常的话编译是需要一定的时间的,如果编译成功之后就会产生以下3个新的文件,其中skynet就是我们需要的可执行文件,这也是最核心的一个文件。
那么我们如何验证编译的这个文件是真的没问题呢?那么我们就需要运行一下skynet这个可执行文件。
运行可执行文件
./skynet example/config
一定要记得需要加个运行参数,这个是运行所需要的配置文件。如果能正常输出的话,就说明这个可执行文件是没有问题的。
更多精彩内容,请关注同名公众:一点月光(alittle-moon)