Redis 6.0.8 编译错误解决办法
问题
当你下载redis 最新版本6.0.8 的时候会发现make的时候会报错,简单来说就是最新版的redis用到了c11 ,你的系统gcc版本低了,系统自带gcc版本是4.8.5,只需要更新下gcc到5.4以上即可,同时编译redis时带上gcc版本的使用参数,不影响系统自带gcc!我这里安装最新版gcc10.2.0
cd src && make all
make[1]: 进入目录“/opt/src/redis-6.0.8/src”
^[[34mCC^[[0m ^[[33mMakefile.dep^[[0m
make[1]: Leaving directory “/opt/src/redis-6.0.8/src”
make[1]: 进入目录“/opt/src/redis-6.0.8/src”
^[[34mCC^[[0m ^[[33mserver.o^[[0m
In file included from server.c:30:0:
server.h:1065:5: error:expected specifier-qualifier-list before ‘_Atomic’
_Atomic unsigned int lruclock; /* Clock for LRU eviction */
^
server.c: in function ‘serverLogRaw’中:
server.c:1032:31: error:‘struct redisServer’ has no member named ‘logfile’
int log_to_std