laruence / yac

A fast, lock-free, shared memory user data cache for PHP
Other
825 stars 199 forks source link

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

Open zivee opened 10 years ago

zivee commented 10 years ago

装上msgpack扩展后解决

paulgao commented 10 years ago

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

laruence commented 10 years ago

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

paulgao commented 10 years ago

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

zivee commented 10 years ago

是的,编译安装没有任何错误,但没有正常被加载,检查扩张时出现 如 '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.

thbourlove commented 10 years ago

@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也可以解决这个问题。

laruence commented 10 years ago

恩, 我先把那个注释掉.