laruence / yac

A fast, lock-free, shared memory user data cache for PHP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

安装扩展后包undefined symbol: php_msgpack_serialize in Unknown on line 0

zivee opened this issue · comments

装上msgpack扩展后解决

config.m4 对于 msgpack 的判断有问题。。。

我本地不能重现, 你们具体是怎么编译的?

我就是标准的动态 so 编译。
编译的时候不会出错,执行的时候会出错,原因就是你没有 msgpack 扩展,但是 config 认为你有,结果 serializer 就默认使用了 msgpack,但是确实没有,所以一执行就会出错了。
我尝试过,把 config.m4 里有关 msgpack 的判断去掉,就可以了。应该是 config.m4 里的判断条件不够严谨导致的。

是的,编译安装没有任何错误,但没有正常被加载,检查扩张时出现 如 'pup -m'就能看到报错,再安装msgpack扩展就正常了

发自我的 iPad

在 2014年2月25日,14:42,paulgao notifications@github.com 写道:

编译的时候不会出错,执行的时候会出错,原因就是你没有 msgpack 扩展,但是 config 认为你有,结果 serializer 就默热使用 msgpack,但是确实没有,所以执行就会出错了。
我尝试过,把 config.m4 里有关 msgpack 的判断去掉,就可以了。


Reply to this email directly or view it on GitHub.

@laruence
只要你不安msgpack扩展,然后动态编译yac,config.m4中的 if test "$PHP_MSGPACK" != 'no' 为 true,最后config.h里面的 ENABLE_MSGPACK 为 1,导致yac使用msgpack来进行序列化。

configure的时候可以加上PHP_MSGPACK=no ./configure,这样就不用装msgpck了。当然装上msgpck也可以解决这个问题。

恩, 我先把那个注释掉.