redis-6バージョンの後にserverをエラーしました.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’
この原因のエラーはバージョンが一致しない問題で、centos 7のデフォルトgccバージョンは4.8.5ですが、このバージョンはredis 6以前のバージョンにのみ適用され、redis 6の後にエラーが表示されます.
gccをアップグレードすればいいです.解決方法は以下の通りです.
注意:sclコマンドの有効化は一時的なもので、xshellをリリースするか、再起動すると元のgccバージョンに戻ります.長期的に有効にする場合は、次のようにします.
大功告成参考:redis-6.0.1エラーserverをインストールします.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’
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 < 1024*1024) {
^
server.c:5117:39: error: ‘struct redisServer’ has no member named ‘maxmemory
gccをアップグレードすればいいです.解決方法は以下の通りです.
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コマンドの有効化は一時的なもので、xshellをリリースするか、再起動すると元のgccバージョンに戻ります.長期的に有効にする場合は、次のようにします.
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
大功告成参考:redis-6.0.1エラーserverをインストールします.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’