Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm trying to use any one of the libxml based 3rd party XML parsers, but I can't because I think I have a libxml2 problem of some sort

I set my other linker flags to -lxml2

and header search paths to /usr/include/libxml2

but I still get a ton of undefined symbols when I try to compile. The errors below are the result of trying to compile TouchXML.

Undefined symbols:
  "_xmlDocDumpFormatMemory", referenced from:
      -[CXMLDocument description] in CXMLDocument.o
  "_xmlXPathNewContext", referenced from:
      -[CXMLNode nodesForXPath:error:] in CXMLNode.o
      -[CXMLNode(CXMLNode_NamespaceExtensions) nodesForXPath:namespaceMappings:error:] in CXMLNode_XPathExtensions.o
  "_xmlOutputBufferFlush", referenced from:
      -[CXMLNode XMLStringWithOptions:] in CXMLNode.o
  "_xmlNodeListGetString", referenced from:
      -[CXMLNode stringValue] in CXMLNode.o
  "_xmlFree", referenced from:
      _xmlFree$non_lazy_ptr in CXMLDocument.o
      _xmlFree$non_lazy_ptr in CXMLNode.o
     (maybe you meant: _xmlFree$non_lazy_ptr)
  "_xmlXPathFreeContext", referenced from:
      -[CXMLNode nodesForXPath:error:] in CXMLNode.o
      -[CXMLNode(CXMLNode_NamespaceExtensions) nodesForXPath:namespaceMappings:error:] in CXMLNode_XPathExtensions.o
  "_xmlNodeDumpOutput", referenced from:
      -[CXMLNode XMLStringWithOptions:] in CXMLNode.o
  "_xmlAddChild", referenced from:
      -[CXMLDocument(CXMLDocument_CreationExtensions) addChild:] in CXMLDocument_CreationExtensions.o
      -[CXMLElement(CXMLElement_CreationExtensions) addChild:] in CXMLElement_CreationExtensions.o
      -[CXMLElement(CXMLElement_CreationExtensions) setStringValue:] in CXMLElement_CreationExtensions.o
  "_xmlDocSetRootElement", referenced from:
      +[CXMLNode(CXMLNode_CreationExtensions) documentWithRootElement:] in CXMLNode_CreationExtensions.o
  "_xmlFreeNode", referenced from:
      -[CXMLNode dealloc] in CXMLNode.o
  "_xmlXPathEvalExpression", referenced from:
      -[CXMLNode nodesForXPath:error:] in CXMLNode.o
      -[CXMLNode(CXMLNode_NamespaceExtensions) nodesForXPath:namespaceMappings:error:] in CXMLNode_XPathExtensions.o
  "_xmlStrcmp", referenced from:
      -[CXMLElement elementsForName:] in CXMLElement.o
      -[CXMLElement attributeForName:] in CXMLElement.o
  "_xmlParseDoc", referenced from:
      -[CXMLDocument initWithXMLString:options:error:] in CXMLDocument.o
  "_xmlCopyNode", referenced from:
      -[CXMLNode copyWithZone:] in CXMLNode.o
  "_xmlOutputBufferClose", referenced from:
      -[CXMLNode XMLStringWithOptions:] in CXMLNode.o
  "_xmlAddPrevSibling", referenced from:
      -[CXMLDocument(CXMLDocument_CreationExtensions) insertChild:atIndex:] in CXMLDocument_CreationExtensions.o
  "_xmlDocDumpMemory", referenced from:
      -[CXMLDocument XMLDataWithOptions:] in CXMLDocument.o
  "_xmlNewDoc", referenced from:
      +[CXMLNode(CXMLNode_CreationExtensions) document] in CXMLNode_CreationExtensions.o
      +[CXMLNode(CXMLNode_CreationExtensions) documentWithRootElement:] in CXMLNode_CreationExtensions.o
  "_xmlNewText", referenced from:
      -[CXMLElement(CXMLElement_CreationExtensions) setStringValue:] in CXMLElement_CreationExtensions.o
  "_xmlXPathFreeObject", referenced from:
      -[CXMLNode nodesForXPath:error:] in CXMLNode.o
      -[CXMLNode(CXMLNode_NamespaceExtensions) nodesForXPath:namespaceMappings:error:] in CXMLNode_XPathExtensions.o
  "_xmlGetLastError", referenced from:
      -[CXMLDocument initWithXMLString:options:error:] in CXMLDocument.o
  "_xmlNewPI", referenced from:
      +[CXMLNode(CXMLNode_CreationExtensions) processingInstructionWithName:stringValue:] in CXMLNode_CreationExtensions.o
  "_xmlSetNs", referenced from:
      -[CXMLElement(CXMLElement_CreationExtensions) addNamespace:] in CXMLElement_CreationExtensions.o
  "_xmlReadMemory", referenced from:
      -[CXMLDocument initWithData:encoding:options:error:] in CXMLDocument.o
  "_xmlNewNs", referenced from:
      +[CXMLNode(CXMLNode_CreationExtensions) elementWithName:URI:] in CXMLNode_CreationExtensions.o
      +[CXMLNode(CXMLNode_CreationExtensions) namespaceWithName:stringValue:] in CXMLNode_CreationExtensions.o
  "_xmlResetLastError", referenced from:
      -[CXMLDocument initWithXMLString:options:error:] in CXMLDocument.o
  "_xmlOutputBufferCreateIO", referenced from:
      -[CXMLNode XMLStringWithOptions:] in CXMLNode.o
  "_xmlNewNode", referenced from:
      +[CXMLNode(CXMLNode_CreationExtensions) elementWithName:] in CXMLNode_CreationExtensions.o
      +[CXMLNode(CXMLNode_CreationExtensions) elementWithName:URI:] in CXMLNode_CreationExtensions.o
      +[CXMLNode(CXMLNode_CreationExtensions) elementWithName:stringValue:] in CXMLNode_CreationExtensions.o
  "_xmlDocGetRootElement", referenced from:
      -[CXMLDocument rootElement] in CXMLDocument.o
  "_xmlXPathRegisterNs", referenced from:
      -[CXMLNode(CXMLNode_NamespaceExtensions) nodesForXPath:namespaceMappings:error:] in CXMLNode_XPathExtensions.o
  "_xmlFreeDoc", referenced from:
      -[CXMLDocument dealloc] in CXMLDocument.o
ld: symbol(s) not found
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
694 views
Welcome To Ask or Share your Answers For Others

1 Answer

I had this same problem. It went away when I linked the binary with the library.

Go to Target -> Build Phases -> Link Binary with Library, click the plus sign and add "libxml2.dylib"

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...