1. 程式人生 > >手動編譯memcached時遇到memcache.c error: too few arguments to function ‘zend_list_insert’的解決方法

手動編譯memcached時遇到memcache.c error: too few arguments to function ‘zend_list_insert’的解決方法

cd /usr/local/src/
wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
tar zxf memcache-2.2.3.tgz
cd memcache-2.2.3
/usr/local/php/bin/phpize
yum install -y m4 autoconf
./configure  --prefix=/usr/local/memcached  --with-php-config=/usr/local/php/bin/php-config
echo $?
0
make  ####這裡開始出錯了
/usr/local/src/memcache-2.2.3/memcache.c: In function ‘php_mmc_connect’:
/usr/local/src/memcache-2.2.3/memcache.c:1902: error: ‘le_memcache_poolTSRMLS_CC’ undeclared (first use in this function)
/usr/local/src/memcache-2.2.3/memcache.c:1902: error: (Each undeclared identifier is reported only once
/usr/local/src/memcache-2.2.3/memcache.c:1902: error: for each function it appears in.)
/usr/local/src/memcache-2.2.3/memcache.c:1902: error: too few arguments to function ‘zend_list_insert’
/usr/local/src/memcache-2.2.3/memcache.c:1919: error: too few arguments to function ‘zend_list_insert’
/usr/local/src/memcache-2.2.3/memcache.c: In function ‘zif_memcache_add_server’:
/usr/local/src/memcache-2.2.3/memcache.c:1975: error: too few arguments to function ‘zend_is_callable’
/usr/local/src/memcache-2.2.3/memcache.c:2003: error: too few arguments to function ‘zend_list_insert’
/usr/local/src/memcache-2.2.3/memcache.c: In function ‘zif_memcache_set_server_params’:
/usr/local/src/memcache-2.2.3/memcache.c:2059: error: too few arguments to function ‘zend_is_callable’
/usr/local/src/memcache-2.2.3/memcache.c: In function ‘mmc_find_persistent’:
/usr/local/src/memcache-2.2.3/memcache.c:2159: error: too few arguments to function ‘zend_list_insert’
/usr/local/src/memcache-2.2.3/memcache.c:2177: error: too few arguments to function ‘zend_list_insert’

解決方法如下:
錯誤1:/usr/local/src/memcache-2.2.3/memcache.c:2159: error:too few arguments to function‘zend_list_insert’
解決方法:百度後:關於該錯誤的帖子很多,方法一致,編輯“memcache.c”檔案
#vimmemcache
將錯誤資訊提示的行中“zend_list_insert”的值(pool,le_memcache_pool)改為(pool,le_memcache_pool TSRMLS_CC)即可


錯誤2:/usr/local/src/memcache-2.2.3/memcache.c:1975: error:too few arguments to function‘zend_is_callable’
解決方法:這個錯誤各種百度就是找不到原因,無奈之下自己隨便試了下,結果成功了!
根據提示資訊找到所在行:if(!zend_is_callable(failure_callback, 0,NULL,)),翻譯上面錯誤資訊,提示函式少引數,於是我在NULL後面又加了NULL就變成了if(!zend_is_callable(failure_callback, 0, NULL,NULL));
到此make , make install一切正常。編輯php.ini配置檔案後,也可以檢視到載入到的動態模組memcache.so