2011-12-27 55 views
1

我应该将我们的开发环境从ActiveState Perl 5.6.0切换到Strawberry Perl 5.12,但是我被困在一个模块中。Perl 5.12加载为Perl创建DLL的模块5.6

我们已经创建了我们自己的模块,其中还包括一个DLL(出于性能原因)。现在该模块是为Perl 5.6.0编译的。问题是,我们还没有源代码,但我们需要以某种方式使用新的Perl版本来获取该模块。

有甚至有机会做到这一点,而无需重新编译该模块的Perl 5.12?

当我尝试加载它时,它说它无法找到所需的DLL,但路径是正确的,并且文件在那里,所以它似乎是版本的加载问题。

TIA 帕特里克

+0

需要更多信息。这个Perl模块如何使用DLL?有没有Perl模块被用来使用DLL?请提供确切的错误消息。 – Zaid 2011-12-27 10:18:54

+0

@Zaid,他正在讨论编译的XS代码(“编译模块”)。 – ikegami 2011-12-27 12:08:41

+0

你将不得不为Perl的新版本进行编译。这意味着你将不得不重写它。真的没有什么好方法。 – 2011-12-27 15:03:39

回答

4

号Perl库是不能保证维持一些主要版本之间的二进制兼容性,并汇编为5.6不是二进制与Perl的5.12库兼容。加载该模块的唯一方法是如果以某种方式涉及Perl 5.6。

+0

是的,我想的很多。我实际上只是发现了这个模块的Perl版本,它有一些性能问题(这就是为什么扩展perl模块首先生成的原因)。它可以工作,但cgi中的性能会很糟糕,当我们切换到fcgi时,应该会更好。 – PWFraley 2011-12-28 15:42:51