为什么Perl的Class :: XSAccessor不能找到Array.so?

r00*_*tuk 2 perl

这是我的第一篇文章,我希望有人可以指出我正确的方向.我曾尝试过谷歌,但我没想出任何东西; 实际上,几乎没有任何命中,所以我认为这将是一个非常模糊的错误.

我试图在Solaris 10上运行perl应用程序(squeezecenter-7.3.3)并收到以下错误:

"ld.so.1:perl:fatal:relocation error:file /opt/squeezecenter-7.3.3/CPAN/arch/5.10.0/i86pc-solaris/auto/Class/XSAccessor/Array/Array.so:signle get_next_arrayindex :未找到引用的符号"

ld.so.1在搜索路径中,但我无法弄清楚what-ld.so.1或Array.so-是否导致错误.任何帮助将不胜感激.

谢谢

tse*_*see 7

最新更新2009-12-04

当前版本的Class :: XSAccessor包含Class :: XSAccessor本身和Class :: XSAccessor :: Array.它不再使用AutoXS.pm来生成AutoXS.h,而是发送静态副本.因此,不应再发生引起问题的问题.


虽然克里斯西蒙斯的想法很好,但这肯定不是你遇到的问题.很可能是您正在使用的Class :: XSAccessor :: Array版本与使用它编译的AutoXS :: Header版本之间不兼容.

实际保证的*修复方法是从CPAN重新安装Class :: XSAccessor.它应该选择兼容版本的AutoXS :: Header.也许你也应该在SlimDevices/Logitech论坛上发帖.

更一般地说,作为两个模块的作者,我不确定为什么会出现这个问题.AutoXS :: Header版本1.02的依赖是最新的Class :: XSAccessor :: Array版本的一部分.因此,如果正确地满足依赖性,一切都应该没问题.SqueezeCenter人员如何更新其捆绑模块可能具有一些特殊性.如果没有,请随时与他们联系.

*剩下的一个问题可能是SqueezeCenter附带的Class :: XSAccessor :: Array优先于从CPAN安装的那个(可能进入系统).在这种情况下,您可以尝试将其安装到/opt/squeezecenter.../CPAN目录中.