在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的服务器代码和客户端代码的编译顺利通过!