【问题标题】:XML::LibXML - problem installing the module on a fresh macOS BigSurXML::LibXML - 在新的 macOS BigSur 上安装模块时出现问题
【发布时间】:2021-01-15 14:41:34
【问题描述】:

我在 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.

并且无法安装模块。

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

谢谢, 伊琳娜

【问题讨论】:

  • 我认为这是由于 Big Sur 所做的向后不兼容的更改之一。我认为it has been fixed,但我认为没有发布任何带有此修复程序的版本。

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


【解决方案1】:

您是否阅读了该模块的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(及其开发头文件)。

【讨论】:

  • 这不太可能是问题(因为有库的头文件)。 Big Sur 破坏了 Perl 工具链,因此在需要时不会将 -lfoo 提供给链接器。这可能是手头的问题
  • libxml2 已安装。看起来这是 Apple 的动态链接器的问题,如下所述:github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/381。我安装了建议的 ExtUtils-MakeMaker-7.58,这解决了最初的问题。
【解决方案2】:

看起来这是苹果动态链接器的问题,如下所述:

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"

有什么线索吗?

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 2016-11-22
    • 2010-11-23
    • 1970-01-01
    • 2021-03-04
    • 2019-11-15
    • 1970-01-01
    • 2021-04-12
    • 2018-08-04
    相关资源
    最近更新 更多