skynet 編譯問題集錦

下載 skynet 源碼:https://github.com/cloudwu/skynet

skynet 編譯很簡單,直接切換到 skynet 目錄後,執行命令:

make linux

問題一:git 命令不存在

解決方法:
https://packages.debian.org/stretch/git

問題二:fatal: Not a git repository (or any of the parent directories): .git

解決方法:
在命令行直接執行命令:git init

問題三:/bin/sh: 1: ./autogen.sh: not found

其他博主都說是因爲沒有安裝 autoconf 與 readline-devel 的緣故,但是這兩個包之前就已經安裝好了,所以我的問題並不是這個原因造成的。

1、查看目錄:3rd/jemalloc,發現爲空目錄。
2、打開文件:skynet/Makefile,發現有這麼一句:

3rd/jemalloc/Makefile : | 3rd/jemalloc/autogen.sh
	cd 3rd/jemalloc && ./autogen.sh --with-jemalloc-prefix=je_ --enable-prof
  • 第一句意思是說:3rd/jemalloc/Makefile 依賴於 3rd/jemalloc/autogen.sh;
  • 而 jemalloc 最新版本的源碼需要藉助 git 來獲取(即 3rd/jemalloc/autogen.sh 的內容)。

很顯然,問題是由於 git 沒有獲取到 jemalloc 源碼造成的(我的 debian 虛擬機無法連接外網)。

解決方法:

直接去 github 下載 jemalloc 最新源碼,然後解壓到目錄:3rd/jemalloc。

問題四:awk: /lib/i386-linux-gnu/libtinfo.so.5: no version information available (required by /lib/i386-linux-gnu/libreadline.so.7)

提示信息指出 awk 用到了庫:/lib/i386-linux-gnu/libtinfo.so.5,但實際需要的是庫:/lib/i386-linux-gnu/libreadline.so.7。

執行命令:ldd awk,查看 awk 的動態鏈接庫,可以看到有錯誤信息。

解決方法:
安裝對應版本的 libtinfo 包。

問題五:warning: File ‘Makefile.in’ has modification time 2380 s in the future

原因是宿主機與虛擬機的系統時間不同步。

解決方法:
在這裏插入圖片描述
重啓後,重新執行命令:make linux 編譯 skynet 時,可能出現出錯。

解決方法:
刪掉 skynet 源文件,重新解壓源碼壓縮文件,重新開始編譯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章