我可以禁止显示“%s的Perl API版本%s与%s不匹配”错误

时间:2018-08-22 19:17:31

标签: perl perl-xs morbo

我将Perl模块(DBD::Pg)从一个系统复制到另一个系统,以对Mojolicious项目进行一些快速检查。在新系统上,当我在morbo(Mojolicious测试Web守护程序)下运行它时,一切正常。但是,当我尝试运行测试(通过Module::Build安装程序)时,出现错误:

  

DBD :: Pg的Perl API版本v5.16.0与/usr/local/lib/perl/DynaLoader.pm第216行的v5.20.0不匹配。

我研究了为什么得到这个,并阅读了the perldoc中的解释。但是,由于该项目在morbo下运行,因此在我看来,这意味着版本不匹配可能微不足道。看起来PerlXS确实为disabling VERSIONCHECK预留了一些余地,但是我看不到在运行Perl脚本时如何应用。

1 个答案:

答案 0 :(得分:3)

您不能将非纯Perl模块从一个系统复制到下一个系统(或复制到一组perl lib目录中,再复制到另一个perl中)。通常,这些模块中的代码是针对特定的perl二进制文件编译的。该二进制文件可能已链接到不同的库,改变了它的工作方式,使用了不同的编译器,以及许多其他事情。如果perl版本相同,则可能甚至无法工作。

相反,为每个需要使用的DBD::Pg安装perl