Perl无法加载XS.xs.dll,缺少perl528.dll

时间:2019-06-28 13:45:47

标签: perl dll

当我运行以下命令时

D:\05_project>perl xml_export.pl  xml_20190626.xml

它从MariaDB生成xml文件。最近6个月效果很好。我在Windows 7/64位上使用了Perl版本 5.28

上周,我删除了Perl 5.28,并安装了Perl 5.30 。许多Perl脚本都能正常工作而不会引起问题,但是xml_export.pl在启动后会中断。首先发生的事情是给出系统错误:

enter image description here

然后在终端上显示以下消息:

Can't load 'C:\PerlLib\lib\perl5/MSWin32-x64-multi-thread/auto/Date/Calc/XS/XS.xs.dll' 
for module Date::Calc::XS: load_file:
The specified module could not befound at 
C:/Program2/Strawberry/perl/lib/DynaLoader.pm line 193.
       at C:\PerlLib\lib\perl5/Date/Calc.pm line 26.

Compilation failed in require at C:\PerlLib\lib\perl5/Date/Calc.pm line 26.
BEGIN failed--compilation aborted at C:\PerlLib\lib\perl5/Date/Calc.pm line 43.
Compilation failed in require at xml_export.pl line 67.
BEGIN failed--compilation aborted at xml_export.pl line 67.

我想知道发生了什么以及如何解决这个问题。软件包Date :: Calc已安装。 Perl安装在驱动器C中,我从驱动器c和d运行perl脚本。如前所述,在安装新版本的Perl之前,我没有任何问题。我重新安装了Perl 5.30,但问题仍然存在。有想法吗?

更新1:

如果我将Date::Calc中的软件包xml_export.pl注释掉了

# -- date computations                   # line 66 
# use Date::Calc qw(:all);               # line 67 

该脚本现在可以工作了。因此,问题仍然是,为什么添加此软件包时它不起作用,以及为什么显示此奇怪的系统错误(缺少perl528.dll)。

1 个答案:

答案 0 :(得分:3)

Date::Calc具有XS组件Date::Calc::XS,即它需要编译一些C代码。升级Perl时,您需要重新编译所有XS模块,以便它们与新的Perl版本一起使用。已安装的程序包与不再存在的库链接(这是“系统错误”窗口告诉您的)。

重新安装Date :: Calc应该可以解决此问题,但请确保所有其他XS模块也已更新。