PHP libmemcachedのビルドがうまくできなかった

PHPでlibmemcachedを利用するためのライブラリにこんなのがある。
GREE Engineering
これを使うためにビルドしたらmakeで失敗した。

その時のログがこれ。

/bin/sh /usr/local/src/libmemcached-0.2.0/libtool --mode=compile cc  -I. -I/usr/local/src/libmemcached-0.2.0 -DPHP_ATOM_INC -I/usr/local/src/libmemcached-0.2.0/include -I/usr/local/src/libmemcached-0.2.0/main -I/usr/local/src/libmemcached-0.2.0 -I/usr/local/php-5.4.13/include/php -I/usr/local/php-5.4.13/include/php/main -I/usr/local/php-5.4.13/include/php/TSRM -I/usr/local/php-5.4.13/include/php/Zend -I/usr/local/php-5.4.13/include/php/ext -I/usr/local/php-5.4.13/include/php/ext/date/lib -I/usr/local/include  -DHAVE_CONFIG_H  -g -O2   -c /usr/local/src/libmemcached-0.2.0/libmemcached.c -o libmemcached.lo 
mkdir .libs
 cc -I. -I/usr/local/src/libmemcached-0.2.0 -DPHP_ATOM_INC -I/usr/local/src/libmemcached-0.2.0/include -I/usr/local/src/libmemcached-0.2.0/main -I/usr/local/src/libmemcached-0.2.0 -I/usr/local/php-5.4.13/include/php -I/usr/local/php-5.4.13/include/php/main -I/usr/local/php-5.4.13/include/php/TSRM -I/usr/local/php-5.4.13/include/php/Zend -I/usr/local/php-5.4.13/include/php/ext -I/usr/local/php-5.4.13/include/php/ext/date/lib -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/libmemcached-0.2.0/libmemcached.c  -fPIC -DPIC -o .libs/libmemcached.o
/usr/local/src/libmemcached-0.2.0/libmemcached.c: In function ‘_php_libmemcached_error’:
/usr/local/src/libmemcached-0.2.0/libmemcached.c:431: error: ‘memcached_st’ has no member named ‘hosts’
/usr/local/src/libmemcached-0.2.0/libmemcached.c:433: error: ‘memcached_server_st’ has no member named ‘cached_errno’
/usr/local/src/libmemcached-0.2.0/libmemcached.c:433: error: ‘memcached_server_st’ has no member named ‘cached_errno’
/usr/local/src/libmemcached-0.2.0/libmemcached.c: In function ‘zif_memcached_gets’:
/usr/local/src/libmemcached-0.2.0/libmemcached.c:515: 警告: passing argument 2 of ‘memcached_mget’ from incompatible pointer type
/usr/local/include/libmemcached-1.0/get.h:54: note: expected ‘const char * const*’ but argument is of type ‘char **’
/usr/local/src/libmemcached-0.2.0/libmemcached.c:534: 警告: passing argument 2 of ‘_php_libmemcached_get_value’ discards qualifiers from pointer target type
/usr/local/src/libmemcached-0.2.0/libmemcached.c:305: note: expected ‘char *’ but argument is of type ‘const char *’
/usr/local/src/libmemcached-0.2.0/libmemcached.c: In function ‘zif_memcached_server_list’:
/usr/local/src/libmemcached-0.2.0/libmemcached.c:1165: 警告: initialization makes pointer from integer without a cast
/usr/local/src/libmemcached-0.2.0/libmemcached.c: In function ‘zif_memcached_mget’:
/usr/local/src/libmemcached-0.2.0/libmemcached.c:1275: 警告: passing argument 2 of ‘memcached_mget’ from incompatible pointer type
/usr/local/include/libmemcached-1.0/get.h:54: note: expected ‘const char * const*’ but argument is of type ‘char **’
make: *** [libmemcached.lo] エラー 1

libmemecachedも入ってるし、何が行けないんだろうと結構悩んだ。
とりあえず「libmemcached.lo」ってなんだろう、と思ってディレクトリ内のファイルを見ていたら「libmemcached.loT」というファイルを見つけた。


まさか・・・とおもってこれをlibmemcached.loにリネームしたらmakeが通った。

ここで生成されるファイル名が間違ってるとは思わなかったよ。