關於編譯memcached時加--enable-memcached-igbinary報錯

關於編譯memcached時加--enable-memcached-igbinary報錯,去掉這個參數即可make通過。

 

報錯如下:

 

 

 

/home/ysq/download/memcached-1.0.2/php_memcached.c  -fPIC -DPIC -o .libs/php_memcached.o

/home/ysq/download/memcached-1.0.2/php_memcached.c:168: 警告:空聲明中指定存儲類無用

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_get_impl’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:382: 警告:傳遞參數 4 (屬於 ‘memcached_mget_by_key’)時在不兼容的指針類型間轉換

/home/ysq/download/memcached-1.0.2/php_memcached.c:419: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c:451: 警告:傳遞參數 4 (屬於 ‘memcached_mget_by_key’)時在不兼容的指針類型間轉換

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_getMulti_impl’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:588: 警告:傳遞參數 4 (屬於 ‘memcached_mget_by_key’)時在不兼容的指針類型間轉換

/home/ysq/download/memcached-1.0.2/php_memcached.c:618: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c:621: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_getDelayed_impl’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:737: 警告:傳遞參數 4 (屬於 ‘memcached_mget_by_key’)時在不兼容的指針類型間轉換

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_fetch’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:812: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c:815: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_fetchAll’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:863: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c:866: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_getServerList’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:1500: 警告:從不兼容的指針類型賦值

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_getServerByKey’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:1530: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_getStats’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:1569: 警告:從不兼容的指針類型賦值

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_getVersion’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:1604: 警告:從不兼容的指針類型賦值

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘zim_Memcached_getResultMessage’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:1826: 警告:初始化丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_do_serverlist_callback’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:1892: 警告:傳遞實參 4(屬於 ‘add_assoc_string_ex’)丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_zval_to_payload’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:2033: 錯誤:提供給函數 ‘php_json_encode’ 的實參太多

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_zval_from_payload’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:2198: 錯誤:提供給函數 ‘php_json_decode’ 的實參太多

/home/ysq/download/memcached-1.0.2/php_memcached.c: 在函數 ‘php_memc_do_result_callback’ 中:

/home/ysq/download/memcached-1.0.2/php_memcached.c:2359: 警告:賦值丟棄了指針目標類型的限定

/home/ysq/download/memcached-1.0.2/php_memcached.c:2362: 警告:賦值丟棄了指針目標類型的限定

make: *** [php_memcached.lo] 錯誤 1

 

參考:http://www.ggtai.com/content/php-libmemcached-memcached-igbinary,嘗試加以下參數:

 

 ./configure CFLAGS="-O2 -g" --enable-memcached-igbinary --enable-memcached

 

依然報錯。查看google到:http://pecl.php.net/bugs/bug.php?id=16770,原來的bug。

 

於是到http://github.com/andreiz/php-memcached或者最近的版本,可以順利通過

 

 

 

 

再看phpinfo(); 中的memcached顯示:igbinary support => yes

 

在memcached使用上,可以用選項:$this->_memcache->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY); 啓用第三方igbinary來做序列化了。

 

 

另外在測試時發現,如果setMulty的key爲16個字符時,會不正常,返回值過一會自動變成0;詭異的問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章