我已经下载了草莓 PERL 并在 Winxp sp3 上使用 CGI Perl Apache 编写了一个应用程序。
我使用的库之一(由其他人编写)使用 XML::LibXML。当我加载页面时,它给出内部服务器错误。从 Apache 错误日志我可以看到这个错误:
无法加载模块 XML::LibXML 的“C:/strawberry/perl/site/lib/auto/XML/LibXML/LibXML.dll”:load_file:在 C:/strawberry/perl/ 中找不到指定的模块lib/DynaLoader.pm 第 190 行。
C:/strawberry/perl/site/lib/auto/XML/LibXML/LibXML.dll 具有所有权限。
该库也可以在 Linux 上正常运行。如果我删除所有需要 LibXML 的代码,我的应用程序也可以正常工作。
谁能告诉我这里什么时候可能出现问题。
如果你查看 DynaLoader 的源代码,你会发现
许多动态扩展加载问题会出现来自
这一段代码:XYZ 在 DynaLoader.pm 的第 123 行失败。
通常这些错误实际上发生在初始化过程中
扩展名 XS 文件的 C 代码。 Perl 报告错误为
在这个 Perl 代码中只是因为这是最后一个 Perl 代码
它执行了。
您应该还收到(但可能没有注意到)以下对话框,其中提供了更准确的错误消息:
问题不是 perl 找不到 LibXML.dll;而是 perl 找不到 LibXML.dll。是LibXML.dll找不到真正的libxml。 (前者只是为后者提供 Perl 绑定的包装器。)要解决这个问题,您需要确保 Strawberry Perl 的c\bin
文件夹位于您的 PATH 中。在你的情况下,那就是C:\strawberry\c\bin
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)