Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
758 views
in Technique[技术] by (71.8m points)

ios - iPhone libxml2 undefined symbols (with gdata, kissxml, touchxml, etc.)

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

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

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...