我已经在 macOS 上成功使用 XML::LibXML 模块一段时间了。
现在我正在尝试将它安装在带有 macOS BigSur 的新机器上:
但是,在“make test”中,我收到了多个此类错误:
t/00-report-prereqs.t .............................. ok
t/01basic.t ........................................
Can't load '/Users/lockit/Desktop/TESTS_Irina/XML-LibXML-2.0204/blib/arch/auto/XML/LibXML/LibXML.bundle'
for module XML::LibXML: dlopen(/Users/lockit/Desktop/TESTS_Irina/XML-LibXML-2.0204/blib/arch/auto/XML/LibXML/LibXML.bundle, 0x0002):
symbol '_xmlFree' not found, expected in flat namespace by
'/Users/lockit/Desktop/TESTS_Irina/XML-LibXML-2.0204/blib/arch/auto/XML/LibXML/LibXML.bundle'
at /System/Library/Perl/5.28/darwin-thread-multi-2level/DynaLoader.pm line 197.
at /Users/lockit/Desktop/TESTS_Irina/XML-LibXML-2.0204/blib/lib/XML/LibXML.pm line 156.
BEGIN failed--compilation aborted
at /Users/lockit/Desktop/TESTS_Irina/XML-LibXML-2.0204/blib/lib/XML/LibXML.pm line 156.
Compilation failed in require at t/01basic.t line 6.
并且模块无法安装。
任何提示我缺少什么以及如何解决?
谢谢, 伊琳娜
答案 0 :(得分:0)
您是否已阅读该模块的 README?它包括以下内容:
<块引用>依赖
==============
在安装之前,您必须已经安装了 libxml2 库。你可以得到
最新的 libxml2 版本来自
如果没有安装 libxml2,这个模块既不会构建也不会运行。
还有 XML::LibXML 需要以下包:
o XML::SAX - SAX 解析器的基类
o XML::NamespaceSupport - SAX 解析器的命名空间支持
需要这些包。如果缺少一些测试将失败。
同样,需要 libxml2 才能使 XML::LibXML 工作。不仅需要图书馆 要构建 XML::LibXML,它也必须在运行时可以访问。因为 这需要确保正确安装了 libxml2。要对此进行测试,请运行 您系统上的 xmllint 程序。 xmllint 随 libxml2 一起提供,因此应该 能得到的。为了构建模块,您还需要 libxml2 的头文件, 在二进制 (.rpm,.deb) 等中,发行版通常位于一个名为 libxml2-devel 或类似的。
因此您需要在系统上安装 libxml2(及其开发头文件)。
答案 1 :(得分:0)
看起来这是 Apple 的动态链接器的问题,如下所述:
https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/381。
我安装了建议的 ExtUtils-MakeMaker-7.58 模块,这解决了最初的问题。
然而,现在make出现了一个新错误: "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- LibXML.bs blib/arch/auto/XML/LibXML/LibXML.bs 644 cc -c -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -g -pipe -fno-strict-aliasing -fstack-protector-strong -DPERL_USE_SAFE_PUTENV -Wno-error=implicit-function-declaration -操作系统 -DVERSION="2.0206" -DXS_VERSION="2.0206" "-I/System/Library/Perl/5.28/darwin-thread-multi-2level/CORE" -DHAVE_UTF8 Av_CharPtrPtr.c Av_CharPtrPtr.c:6:10: 致命错误:找不到“EXTERN.h”文件 #include "EXTERN.h"
有什么线索吗?