libxml / tree.h没有这样的文件或目录

我收到以下错误。

libxml / tree.h没有这样的文件或目录

我已经添加libxml2.dylib到我的项目,但是我遇到这种types的麻烦。 请帮帮我。

按照这里的说明 ,在“设置你的项目文件”下。

设置您的项目文件

您需要将libxml2.dylib添加到您的项目中(不要将其放在“框架”部分中)。 在Mac上,您可以在/usr/lib/libxml2.dylibfind它,而对于iPhone,则需要/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylib版本。

由于libxml2是一个.dylib(不友好的框架),我们还有一件事要做。 转到项目构build设置(Project-> Edit Project Settings-> Build),find“searchpath”。 在“标题searchpath”中添加以下path:

 $(SDKROOT)/usr/include/libxml2 

另请参阅OP的答案 。

在Xcode 4.3 / 5/6中添加libxml2

添加libxml2是一个巨大的,肥胖的,屁股的挑剔的痛苦。 如果你打算这么做的话,那么在你build立你的项目之前,要先做好。


您需要以两种方式添加它:

1.目标设定

点击你的目标(不是你的项目),然后selectBuild Phases

点击Link Binary With Libraries显示三angular 。 点击+添加一个库。

滚动到列表底部并selectlibxml2.dylib 。 这将libxml2库添加到您的项目。

2.项目设置

现在你必须告诉你的项目在哪里再找三次。

selectBuild Settings tab

向下滚动到Linking部分。 在您的项目列下双击Other Linker Flags行。 点击+并将-lxml2添加到列表中。

还有更多。

在相同的选项卡中,向下滚动到Search Paths部分。

在“ Framework Search Paths行的项目列下添加/usr/lib/libxml2.dylib

Header Search Paths User Header Search Paths行中,添加$(SDKROOT)/usr/include/libxml2

在最后两种情况下,请确保在“debugging发布”中inputpath。

3.清洁

Product菜单下selectClean

那么,如果我是你(让我面对它,我可能是),我会退出Xcode并走开。 当你回来启动你应该很好去。

对于Xcode 6,我必须做到以下几点:

1)将“libxml2.dylib”库添加到我的项目的目标(构build阶段 – >与库链接二进制文件)

2)将“$(SDKROOT)/ usr / include / libxml2”添加到目标(生成设置 – >标题searchpath)的标题searchpath

之后,目标应该build立成功。

您还需要将/usr/include/libxml2到包含path中。

Ray Wenderlich有一篇关于使用gdata来解决这个问题的博客文章。 基本上这些简单的步骤:

在XCode中,单击Project \ Edit Project Settings并确保选中“All Configurations”。

findsearchpath\标题searchpath设置,并将/ usr / include / libxml2添加到列表中。

最后,findLinking \ Other Linker Flags部分,并将-lxml2添加到列表中。

原帖: 用gdataxml读取和写入xml文件

形成@Matt Ball的链接,

我发现以下对我有帮助。

您需要将libxml2.dylib添加到您的项目中(不要将其放在“框架”部分中)。 在Mac上,您可以在/usr/lib/libxml2.dylibfind它,而对于iPhone,则需要/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libxml2.dylib版本。

由于libxml2是一个.dylib(不友好的框架),我们还有一件事要做。 转到项目构build设置( Project->Edit Project Settings->Build ),find“ Search Paths ”。 在“标题searchpath”中,在Mac上添加以下path:

  /usr/include/libxml2 

我发现一样,我不得不为最新的Xcode(4.3.x)添加$(SDKROOT)/ usr / include / libxml2。 此外,让我绕了几个小时的事情是,我正在修改“TARGET”而不是“PROJECT”(Xcode的新UI太复杂,容易忽略)。 您需要修改PROJECT!

解决scheme 执行标题searchpath中的所有步骤,并确保在项目设置中的项目中select的configuration是正确的。 双击项目构build设置时,可能会更改“分布”设置,但是您正试图在“debugging”设置中添加标题searchpath。 所以确保你在正确的设置。 或select所有设置

我发现,使用xCode 4.3.2,我不得不在/ Header Search字段中input$(SDKROOT)/ usr / include / libxml2,而不是简单的/ usr / include / libxml2

从小牛(OS X 10.9)开始,/ usr / include目录不见了 。 这里的答案有一半是过时的,因为除非你理清include目录,否则应用程序将不会编译。

我解决了在terminal中使用以下命令在MacOSX SDK中创build符号链接的问题:

 sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include 

应用程序现在再次编译。

我不知道有什么区别,但添加包含path的项目以及目标。

在Mountain Lion上,我遇到了同样的问题,通过添加/usr/include/libxml2来包含标记为“recursion”的path,解决了上述问题。

在升级到Snow Leopard和XCode 3.2后,我重新打开了一个项目(在XCode上开发了一些在Leopard上的东西),我遇到了这个问题。 好奇的是,它只影响了一些构build(模拟器构build正常,设备给了我错误)。 我在/ usr / include下有libxml2,它确实包含libxml / tree.h。

即使是“干净”的魔法也无济于事, 但是在“XCode”菜单下(苹果标志和File之间)的“Empty Caches …”却做到了这一点(在之前的版本中是那个菜单)。 打败我的原因,但清理后没有更多的投诉有关libxml / tree.h

同时select“总是search用户path”为YES。 在XCode 4.3.3中它默认是NO

请按照以下步骤

  1. 添加libxml2
    可以在/usr/lib/libxml2.dylib的mac machin上findlibxml2.dylib

  2. 更改“标题searchpath”
    点击[Project Name](左侧) – > Project – > Build Settings – > Select All(默认为Basic)
    在search框中input标题searchpath
    双击标题searchpath – > + – >“$(SDKROOT)/ usr / include / libxml2”

  3. 将“-lxml2”添加到“其他链接器标志”
    在步骤2中search“其他链接器标志”作为search
    点击“Other Linker Flags”行。 点击“+”并添加“-lxml2”到列表中。

  4. 将项目types更改为ARC – >否,即自动引用计数为否您可以按照步骤2中的步骤searchARC

Xcode 4.5我完全使用了CW的解决scheme。 唯一的例外是$(SDKROOT)/ usr / include / libxml2不适用于我,而且我必须在项目标题searchpath用户头searchpath中添加“$(SDK_DIR)”/ usr / include / libxml2 。 之后,项目build立成功。

编辑:我有我的项目(称为MyProject)(我的项目使用)内的Google GData项目。 GData需要libxml。 要成功构build项目MyProject,我将“$(SDK_DIR)”/ usr / include / libxml2添加到MyProject的Headersearchpath,否则添加到GData的Headersearchpath 。 如果我没有把它添加到MyProject,项目没有build立 )。

我发现这个视觉教程很有用。

Blockquote在Xcode 4.3.x中添加libxml2

添加libxml2是一个巨大的,肥胖的,屁股的挑剔的痛苦。 如果你打算这样做,那么在你build立你的项目之前,要做的太多了。

就是这样。

目标设置

点击你的目标(不是你的项目),然后select“构build阶段”。 点击标题为“Link Binary With Libraries”的显示三angular形。 点击“+”添加一个库。 滚动到列表底部并select“libxml2.dylib”。 这增加了libxml2库2你的项目…但是等等。

项目设置

现在你必须告诉你的项目在哪里再找三次。

select“构build设置”选项卡。 向下滚动到“链接”部分。 在您的项目列下双击“其他链接器标志”行。 点击“+”并添加“-lxml2”到列表中。

还有更多。

在同一选项卡中,向下滚动到“searchpath”部分。 在“框架searchpath”行的项目列下添加“/usr/lib/libxml2.dylib”。

在“标题searchpath”和“用户标题searchpath”行中添加“$(SDKROOT)/ usr / include / libxml2”。 在最后两种情况下,请确保在“debugging和发布”中inputpath。

然后。 在“产品”菜单下select“清洁”。

这是工作,也为Xcode5! 谢谢!

不要把libxml2.dylib放在frameworks文件夹的根目录下(左上angular的蓝色图标)

然后点击项目(TOP左蓝色图标),转到构build设置,在search框中键入“标题searchpath”,然后添加这个“$(SDKROOT)/ usr / include / libxml2”

这段代码解决了我的问题,希望它能帮助你解决这个问题

@Aqib Mumtaz – 我按照Parris上面的注释“在Xcode 4.3 / 5/6中添加libxml2”的说明来工作。 使用框架searchpath的步骤不起作用,编译器抱怨。 无论如何,这个家伙的大荣誉!

我正在使用Xcode 6.2b3

无论您使用的Xcode版本如何,它都是有问题的。 不要总是认为编译错误是真实的。 有很多时候,它不遵循标题searchpath,包括明确列出没有被发现。 更糟的是,结果中的错误往往指向不同的方向,所以你浪费了大量的时间与分心。 有了那个说…

从这个开始推荐宝贝步骤…:

  1. 创build单个窗口Mac OS X Cocoa项目名为“Bench Test”
  2. 直接在Finder中将XpathQuery添加到您的项目源目录中
  3. 点击项目窗口的红色closuresbutton下的小文件夹图标
  4. 将XpathQuery(如果包含该文件夹)拖放到项目窗口显示左侧的项目资产中
  5. 将/Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libxml2.2.dylib拖放到您的项目资产中,位于底部。 这将添加到您的“构build阶段” – >“与库链接二进制”的简单方法
  6. 点击左侧顶部的项目资产列中的“Bench Test”项目图标
  7. search“Build Settings”下的“Other Linker Flags”
  8. 在“Bench Test”项目图标栏下添加“-lxml2”(sans“”)到“Other Linker Flags”
  9. 在“Build Settings”下search“header search”
  10. 在“Bench Test”项目图标栏下添加“$(SDKROOT)/ usr / include / libxml2”(sans“”)到“Header Search Paths”
  11. 将“$(SDKROOT)/ usr / include / libxml2”(sans“”)添加到“Bench Test”项目图标列下的“User Header Search Paths”

笔记:

  • 直到我将searchpath添加到“标题searchpath”和“用户标题searchpath”之前,我的行为才会奏效。
  • 要在查找器中findlibxml2.2.dylib,您需要右键单击您的Xcode图标,然后select“显示包联系人”(编辑:什么hack …将所有垃圾填入应用程序)
  • 准备好更改链接的libxml2.2.dylib。 Xcode里面的一个是有意用来确保Xcode得到它所知道的东西,并在理论上被testing。 你可能想稍后在系统中使用dylib(在这个线程中读取)
  • 当我使用Xcode 6.2b3时,我可能会有一个更新的libxml2.2.dylib。 你的名字可能略有不同。 只需在文件夹中search以“libxml”开头,以“.dylib”结尾的文件即可。 也可能有一个别名,如“libxml2.dylib”。 不要马上使用,因为parsing别名会将另一个variables添加到Xcode“可能有什么bug”方程中。
  • 为了理智,我把外部库的别名,重命名为它们是哪一个,并将它们与Finder中的项目文件保持在同一级别。 如果他们改变位置,更改名称等,别名将在它的Get Info(原始文件的完整path)中进行后续的检测工作,以重新获得项目的编译和链接。 (符号链接太容易了,对Mac来说不太自然)
  • 最后一件事情,非常重要,请参阅http://www.cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html ,您可以在其中下载XpathQuery并获得更多的好处。

希望这可以帮助。

如果你正在为退伍军人开发一些东西,那就说一个iPhone / iPad或Mac应用程序,并且正在与医疗logging系统的基于SOAP接口的称为“MDWS”或“VIA”的东西打交道……请与我联系

我在Xcode 8.0 +unit testing项目中分三步解决

1)我添加了libxml文件到Build Phases.follow这个链接

2)我将其他链接标志 -ObjC-ObjC (对于项目和testing项目目标)

3)我将头文件searchpath设置为"${SDKROOT}/usr/include/libxml2" (不要忘记双引号)(对于项目和testing项目目标)

其中之一将解决这个问题。 如果不是,你必须应用以上所有三个。

我想我补充错误,然后我意识到问题是它不支持弧,所以检查支持一个在这里,救星 – > http://www.michaelbabiy.com/arc-compliant-gdataxml-library/