天天看點

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結

skynet是為線上遊戲伺服器打造的輕量級架構,使用c+lua實作,支援linux 。使用這套架構能獲得很大收益,其中一個就是,基本隻需要用lua開發,很少用到c,提高了開發效率。但是,skynet本身對系統有很大依賴性,安裝說明過于簡單,沒有提及到。是以文章這裡總結linux安裝skynet問題,希望有所幫助。

skynet的安裝過程

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結

簡單3步,對于很多高版本的系統來說,可能就這3步。但是,低版本系統可能無法安裝,如下:

1. gcc版本問題

2. 缺少 readline

3. 缺少 ncurses

4. 缺少 git (非必要項,則要手動下載下傳skynet及3rd下的jemalloc)

5. 缺少 autoconf

是以,這裡以CentOS5.5系統做說明,這系統不具備以上幾個條件,甚至連git都無法通過包管理來安裝。在skynet的編譯過程中,如果在make步驟出現錯誤,要用 make cleanall 清除已編譯的檔案,不然會出現莫名其妙的錯誤。

在早期的skynet版本,lua不能清除幹淨,若是這樣,執行:cd 3rd/lua && make clean && cd -

注意:想學習skynet的朋友可以關注+背景私信“skynet”視訊學習位址:

https://ke.qq.com/course/2806743?flowToken=1025549

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
問題1:缺少git
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

這裡要安裝git,在安裝git過程中,非常重要一步是安裝curl,而這一步會把git所有的依賴裝上,如curl和openssl,而git編譯時也要找到curl庫

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
問題2:git https錯誤
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

很多網友都是說把https換成git解決,但也隻是暫時性的。報錯是git安裝時系統缺少curl導緻的,參考問題1重裝git

重裝git後,如果還不行,應該是git軟連接配接問題,如下修正:ln -sf /usr/bin/git /bin/git

問題3:缺少readline
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

yum -y install readline-devel

問題4:缺少ncurses
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

很多網友說修改Makefile,在SYSLIBS變量中追加" -lncurses "選項,但這樣不友善,以後還會遇到這個問題。是以這裡建議手動安裝readline

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結

備注:

1、國内連接配接http://gnu.org網站不是很穩定,可能wget要多試幾次。

2、通過ldconfig -p |grep readline可以測試readline的庫是否成功加載

3、如果還無法解決,執行以下指令(建議先備份下):

rm -rf /usr/lib/libreadline*

ldconfig

如果是64位機器:

rm -rf /usr/lib64/libreadline*

ldconfig

問題5:lua整數編譯報錯
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

這個是skynet最常見的編譯失敗了,和gcc版本有關,更新gcc可以解決問題。

最簡單的方法:修改Makefile,在CFLAGS 加入 -std=gnu99

如果不想手動改,可用以下指令:

sed -i "s|CFLAGS =|CFLAGS = -std=gnu99 |" Makefile

如果是更新gcc參考問題6的解決方式。

問題6:gcc編譯器問題
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

這是gcc版本問題,解決方法就是到高版本(如gcc4.5)下載下傳一個linux_atomic.c檔案,将其編譯為一個靜态庫連結到你的項目代碼,具體做法也比較麻煩。是以,這裡推薦重裝gcc。

另外,編譯skynet建議gcc最低版本4.6.0,可自動下載下傳并更新依賴包。安裝gcc過程會比較久,要耐心等待

安裝gcc步驟如下:(確定磁盤可用空間至少4G)

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結

注意了,要確定 download_prerequisites 安裝成功。因為國内連接配接http://gnu.org網站不是很穩定,可能出現類似錯誤:

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結

如果重試了很多次都無法成功,嘗試手動安裝吧,主要就3個依賴gmp和mpfr、mpc,裝好後再繼續執行gcc ../configure及後面的步驟。

linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
問題7:缺少autoconf
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

yum -y install autoconf

問題8:連結錯誤
linux c語 curl代碼_linux下安裝遊戲伺服器架構skynet問題總結
解決:

虛拟機共享目錄不能設定軟連接配接,選擇其他目錄安裝