XML::LibXML - 在新的 macOS BigSur 上安装模块时出现问题

时间:2021-01-15 14:41:34

标签: macos perl installation macos-big-sur xml-libxml

我已经在 macOS 上成功使用 XML::LibXML 模块一段时间了。

现在我正在尝试将它安装在带有 ma​​cOS BigSur 的新机器上:

  • perl Makefile.PL
  • 制作
  • 进行测试
  • 进行安装

但是,在“ma​​ke 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.

并且模块无法安装。

任何提示我缺少什么以及如何解决?

谢谢, 伊琳娜

2 个答案:

答案 0 :(得分:0)

您是否已阅读该模块的 README?它包括以下内容:

<块引用>

依赖
==============
在安装之前,您必须已经安装了 libxml2 库。你可以得到 最新的 libxml2 版本来自

http://xmlsoft.org/

如果没有安装 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"

有什么线索吗?