使用Perl 5.10编译XS时,为什么会出现“未定义的引用”错误?

我有一个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扩展兼容等等.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...