我有一个C对象,我使用Perl XS转换为Perl.这个过程适用于Perl 5.8.5和5.8.7.但是当我尝试使用Perl 5.10.0时,我遇到了很多编译错误.他们中的大多数都是这样的:
undefined reference to 'PL_stack_max' undefined reference to 'PL_stack_sp' undefined reference to 'Perl_sv_2pv_flags' undefined reference to 'Perl_sv_setref_pv'
这告诉我,由于某种原因,Perl XS的东西没有正确链接.当我从5.8.5升级到v5.8.7时,我只需要更改版本并重新制作.
有小费吗?
解决方法
移动到5.10.0后,您是否重新编译了XS扩展?
您是否在构建Perl 5.10.0时保持向后兼容性? (这是否可能?我从未试图建立向后兼容性,所以我不能确定它甚至是一个选项,@ Ysth认为它不是.)
我在Perl的主要版本之间工作时遇到了类似的问题,但最近还没有充分确信究竟是什么导致了这个问题.但我似乎记得在配置过程即将结束的某个地方存在一个问题,即哪个以前版本的Perl与XS扩展兼容等等.