linux has no member named 编译出错,Linux 安装配置Redis及常见错误解决办法

下载Redis资源:

通过上述方式下载的gz包,执行以下命令解压tar -zxvf redis-6.0.6.tar.gz

注意,请在你下载的redis-6.0.6.tar.gz所在的文件夹下执行

然后进入解压后的redis文件夹cd /home/mySoft/redis-6.0.6/   # 我下载的redis-6.0.6.tar.gz在/home/mySoft/下,因此解压到了这个目录

执行以下命令进行安装:make && make install

此步为重点,因为几乎所有的错误均出现在这里:

1、报错:/bin/sh: cc: command not found[root@master redis-6.0.1]# make

……

make[3]: cc: Command not found

make[3]: *** [net.o] Error 127

make[3]: Leaving directory `/home/mySoft/redis-6.0.6/deps/hiredis'

make[2]: *** [hiredis] Error 2

make[2]: Leaving directory `/home/mySoft/redis-6.0.6/deps'

make[1]: [persist-settings] Error 2 (ignored)

CC adlist.o

/bin/sh: cc: command not found

make[1]: *** [adlist.o] Error 127

make[1]: Leaving directory `/home/mySoft/redis-6.0.6/src'

make: *** [all] Error 2

此时,说明你的linux系统没有安装gcc,请执行一下命令安装gccyum -y install gcc

2、报错:server.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’

如您执行make命令报如下的错误,说明您的Linux系统gcc版本过低,请升级gcc版本到最新[root@master redis-6.0.1]# make

……

server.c:5101:19: error: ‘struct redisServer’ has no member named ‘sofd’

if (server.sofd > 0)

^

server.c:5102:94: error: ‘struct redisServer’ has no member named ‘unixsocket’

serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket);

^

server.c:5103:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’

if (server.supervised_mode == SUPERVISED_SYSTEMD) {

^

server.c:5104:24: error: ‘struct redisServer’ has no member named ‘masterhost’

if (!server.masterhost) {

^

server.c:5117:15: error: ‘struct redisServer’ has no member named ‘maxmemory’

if (server.maxmemory > 0 && server.maxmemory 

^

server.c:5117:39: error: ‘struct redisServer’ has no member named ‘maxmemory’

……

解决办法:# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5

gcc -v

# 升级gcc到5.3及以上,如下:

升级到gcc 9.3:

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。

如果要长期使用gcc 9.3的话:

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

这样退出shell重新打开就是新版的gcc了

以下其他版本同理,修改devtoolset版本号即可。

3、报:Hint: It's a good idea to run 'make test' ;)

这个不是错误,是已经运行成功的说明,让你运行make testHint: It's a good idea to run 'make test' ;)

INSTALL install

INSTALL install

INSTALL install

INSTALL install

INSTALL install

make[1]: Leaving directory `/home/mySoft/redis-6.0.6/src'

执行make test :[root@hecs-x-large-2-linux-20200513103942 redis-6.0.6]# make test

cd src && make test

make[1]: Entering directory `/home/mySoft/redis-6.0.6/src'

You need tcl 8.5 or newer in order to run the Redis test

make[1]: *** [test] Error 1

make[1]: Leaving directory `/home/mySoft/redis-6.0.6/src'

make: *** [test] Error 2

根据以上报错,我们需要安装tcl 8.5以上[root@etcd3 tmp]# wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

[root@etcd3 tmp]# tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/

[root@etcd3 tmp]# cd  /usr/local/tcl8.6.1/unix/

[root@etcd3 unix]# ./configure

[root@etcd3 unix]# make  #此命令是在unix文件夹下执行的,不是redis下

[root@etcd3 unix]# make install  #此命令是在unix文件夹下执行的,不是redis下

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值