在IBM AIX平台下编译redis还是比较顺利的. 我没有直接使用官方的Makefile
,参考了下官方Makefile
中的编译依赖关系,按照平时常用的格式自己写了个Makefile
文件。
首先,编译hiredis
时,主要在编译命令中定义了三个宏:__HIREDIS_FMACRO_H
、_BSD_SOURCE
、AF_LOCAL=AF_UNIX
,编译就顺利通过了。
-D__HIREDIS_FMACRO_H -D_BSD_SOURCE -DAF_LOCAL=AF_UNIX
编译服务器代码,稍微麻烦点,因为编译过程中会提示
"redis.h", line 502.9: 1506-275 (S) Unexpected text integer constant encountered.
这是因为,redis.h
中结构体redisServer
用到了一个名为hz
的成员,而hz
这玩意在aix平台下被定义过。至此,编译就报错了。
我在文件中加了#undef hz
,解决了。
同样,编译服务器代码,采用相同的思路,这次添加了四个宏定义,如下:
-D_XOPEN_SOURCE_EXTENDED=1 -D_ISOC99_SOURCE -D_ALL_SOURCE -DAF_LOCAL=AF_UNIX
以上修改后,redis的服务器代码和客户端代码的编译顺利通过!