要想認識一個框架,首先要做的就是讓它跑起來。
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)