centos7安装redis6报错

本文介绍了如何通过检查GCC版本并升级到5.3以上来解决在编译Redis服务器时遇到的关于'repl_state'等成员缺失的错误。步骤包括确认gcc版本、安装devtoolset-9、配置环境并永久启用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错内容如下:

server.c:4558:23: error: ‘struct redisServer’ has no member named ‘repl_state’
                 server.repl_state == REPL_STATE_TRANSFER,
                       ^
server.c:4562:23: error: ‘struct redisServer’ has no member named ‘repl_state’
             if (server.repl_state == REPL_STATE_TRANSFER) {
                       ^
server.c:4567:32: error: ‘struct redisServer’ has no member named ‘repl_transfer_size’
                         (server.repl_transfer_size - server.repl_transfer_read),
                                ^
server.c:4567:60: error: ‘struct redisServer’ has no member named ‘repl_transfer_read’
                         (server.repl_transfer_size - server.repl_transfer_read),
                                                            ^
server.c:4568:33: error: ‘struct redisServer’ has no member named ‘unixtime’
                     (int)(server.unixtime-server.repl_transfer_lastio)
                                 ^
server.c:4568:49: error: ‘struct redisServer’ has no member named ‘repl_transfer_lastio’
                     (int)(server.unixtime-server.repl_transfer_lastio)
                                                 ^
server.c:4572:23: error: ‘struct redisServer’ has no member named ‘repl_state’
             if (server.repl_state != REPL_STATE_CONNECTED) {
                       ^
server.c:4575:38: error: ‘struct redisServer’ has no member named ‘unixtime’
                     (intmax_t)(server.unixtime-server.repl_down_since));
                                      ^
server.c:4575:54: error: ‘struct redisServer’ has no member named ‘repl_down_since’
                     (intmax_t)(server.unixtime-server.repl_down_since));
                                                      ^
server.c:4580:23: error: ‘struct redisServer’ has no member named ‘slave_priority’
                 server.slave_priority,
                       ^
server.c:4581:23: error: ‘struct redisServer’ has no member named ‘repl_slave_ro’
                 server.repl_slave_ro);

解决如下:
查看gcc版本是否在5.3以上,CentOS7默认安装4.8.5。
升级gcc到5.3以上版本,升级到gcc 9
#编译出错时,清除编译生成的文件
make distclean
执行
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#需要注意的是scl命令启用只是临时的,退出shell或重新打开一个shell就会恢复原系统gcc版本
scl enable devtoolset-9 bash
gcc -v
#执行以下命令永久使用
echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
#注:执行完此命令后,其它的shell窗口需要关闭重新打开才生效。
#重新打开shell窗口,再次编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值