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 源文件,重新解压源码压缩文件,重新开始编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值