【问题标题】:How to successfully integrate ImageMagick into iOS?如何成功地将 ImageMagick 集成到 iOS 中?
【发布时间】:2016-03-24 15:24:05
【问题描述】:

我目前有一个链接器错误,大约 44 次引用了 x86_64 架构的未定义符号。所有这些都来自一个集成文件“libMagickCore.a”,所以我试图寻找“架构 x86_64 libmagickcore.a 的未定义符号”的解决方案 我在这里看到了一个解决方案Undefined symbols for architecture x86_64 ImageMagick on Mac Lion,它解决了 Mac Lion 上的类似问题。我还查看了 ImageMagick 板上的类似问题。我发现的线程和 Stack Overflow 链接似乎都在谈论包含或明确排除 X11 库。

我尝试在构建设置下将“-lX11”添加到“其他链接器标志”,但最终得到“找不到 -lX11 的库”。因此,我还尝试将 libX11.dylib 从 /opt/X11/lib 拖到我的 XCode 项目中,但无济于事。关于 ImageMagick 板上类似问题的建议是使用“--without-wmf”“--without-x11”标志,但我不知道要在没有编译器错误的情况下将其添加到构建设置的哪个键/值对说“不支持的选项”。

这些是链接器错误:

Undefined symbols for architecture x86_64:
  "_xmlAddAttributeDecl", referenced from:
      _MSLAttributeDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGAttributeDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlAddChild", referenced from:
      _MSLReference in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _MSLCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGReference in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
      _SVGCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlAddDocEntity", referenced from:
      _MSLEntityDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _MSLUnparsedEntityDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGEntityDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
      _SVGUnparsedEntityDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlAddDtdEntity", referenced from:
      _MSLEntityDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGEntityDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlAddElementDecl", referenced from:
      _MSLElementDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGElementDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlAddNotationDecl", referenced from:
      _MSLNotationDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGNotationDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlCleanupParser", referenced from:
      _UnregisterMSLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _UnregisterSVGImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlCreateIntSubset", referenced from:
      _MSLInternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGInternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlCreatePushParserCtxt", referenced from:
      _ProcessMSLScript in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _ReadSVGImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlDetectCharEncoding", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlFree", referenced from:
      _MSLAttributeDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGAttributeDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlFreeDoc", referenced from:
      _SVGEndDocument in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlFreeInputStream", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlFreeParserCtxt", referenced from:
      _ProcessMSLScript in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _ReadSVGImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlGetDocEntity", referenced from:
      _MSLGetEntity in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGGetEntity in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlGetLastChild", referenced from:
      _MSLCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlGetParameterEntity", referenced from:
      _MSLGetParameterEntity in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGGetParameterEntity in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlInitParser", referenced from:
      _RegisterMSLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _RegisterSVGImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlLoadExternalEntity", referenced from:
      _MSLResolveEntity in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGResolveEntity in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlMalloc", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlNanoFTPClose", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoFTPConnect", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoFTPGet", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoFTPInit", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoFTPNewCtxt", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoHTTPCleanup", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoHTTPClose", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoHTTPMethod", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNanoHTTPRead", referenced from:
      _ReadURLImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-url.o)
  "_xmlNewCDataBlock", referenced from:
      _MSLCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlNewCharRef", referenced from:
      _MSLReference in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGReference in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlNewDoc", referenced from:
      _MSLStartDocument in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGStartDocument in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlNewDtd", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlNewReference", referenced from:
      _MSLReference in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGReference in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlParseChunk", referenced from:
      _ProcessMSLScript in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _ReadSVGImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlParseExternalSubset", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlPopInput", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlPushInput", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlSplitQName", referenced from:
      _MSLAttributeDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGAttributeDeclaration in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlStrdup", referenced from:
      _MSLStartDocument in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGStartDocument in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlSubstituteEntitiesDefault", referenced from:
      _ProcessMSLScript in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _ReadSVGImage in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlSwitchEncoding", referenced from:
      _MSLExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGExternalSubset in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
  "_xmlTextConcat", referenced from:
      _MSLCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-msl.o)
      _SVGCDataBlock in libMagickCore.a(magick_libMagickCore_6_Q8_la-svg.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

【问题讨论】:

  • 这些错误来自一些缺少的 XML 库,而不是 X11。
  • 好吧,如果你看看这个链接:imagemagick.org/discourse-server/viewtopic.php?t=19467 有一些 xml 引用,我相信其中一些是相同的。有人说解决方案是在某处使用 --without-x11 标志,尽管我不知道将其添加到哪个键/值标志。我尝试了链接器标志键无济于事
  • 我从未尝试构建 ImageMagick。我不知道修复是什么。我只是指出您问题中缺少的符号来自您不包括的一些 XML 库。它们都来自与 MSL 和 SVG 相关的代码(基于引用 XML 代码的内容)。
  • 对,在 ImageMagick 板链接中,它似乎有相同的 MSL/SVG 内容。也许我需要包含/排除的是 X11?

标签: ios xcode linker imagemagick


【解决方案1】:

通过转到“构建阶段”并将二进制文件与库链接,将“libxml2.2.tbd”添加到项目中解决了该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2017-08-22
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多