为什么我会收到“libxml/tree.h文件未找到”的错误?

44

我刚刚安装了Xcode 4.3.1版本,然后遇到了这个错误:

找不到libxml/tree.h文件

我也安装了Xcode 4.2,在同一个项目中,我遇到了同样的错误。

我已经配置了头文件搜索路径,加入了 /usr/include/libxml2
我还尝试过使用 $(SDKROOT) / usr/include/libxml2,但是没有起作用。

我还在其他链接标志中加入了lxml2

14个回答

100

将以下内容包含在头文件搜索路径中,您就可以免于苹果在其Xcode更新中做出的任何奇怪举动:

$(SDKROOT)/usr/include/libxml2

5
这对我很有用,但我还必须将"Always Search User Paths"设置为YES。 - DZenBot
1
这对我有用,设置Always Search User PathsNO - Binarian
以防万一有人和我遇到相同的情况:记得将搜索路径也添加到测试目标中。 - enreas

27

在你的问题中,/usr 之间有一个空格。也许这是一个笔误,但路径应该是:

/usr/include/libxml2

只需确认该路径是否在目标构建设置中:

目标构建设置

您还可以验证该路径是否存在于您的文件系统中。


这个免费空间一定是复制粘贴时出错了...我已经将“始终搜索用户路径”选项标记为“是”,但它不起作用:( - Sergio Rodríguez
你是否像这样导入头文件:#import <libxml/tree.h>?同时请查看SO上类似问题的答案 - FluffulousChimp
到目前为止,我是这样解决的:https://dev59.com/l2kw5IYBdhLWcg3w1eC7谢谢! - Sergio Rodríguez

19

LibXML2库问题已解决

解决方案!

如果你的电脑上有xcode 4.3.x在 /Application路径下,只需将 "/usr/include/libxml2" (不含引号)添加到应用程序TARGET -> Header search path选项中即可。

具体操作方法是:双击该行 -> 在弹出的窗口中点击加号 -> 输入/usr/include/libxml2

注意 - 还需要将libxml2.dylib添加到框架中。我使用的版本是2.2.7.3。

希望能帮到你。


8

我通过设置头文件搜索路径来解决了这个问题:

${SDK_DIR}/usr/include/libxml2

建议将“始终搜索用户路径”设置为NO(这也是强烈建议的)。

这只是目标中的一部分。


7

在4.3.1版本中出现了这个问题,你需要在Targets和项目中都包含Header Search Paths。我不确定是从4.2升级到4.3.1时出现的问题,但我刚刚更新到Lion系统也遇到了同样的问题。


只添加到目标就足够了,那么添加到项目中的意义是什么呢? - Lukasz
就是这样!这为我解决了问题。 - Pitarou

4
我今天再次遇到了这个问题,我建议你在路径上加引号:
"$(SDKROOT)/usr/include/libxml2"

由于路径中包含空格,我浪费了半个小时处理这个问题。


3

我有同样的问题。

我尝试将路径(“标头搜索路径”)设置为/usr/include/libxml2,但构建错误!

我尝试将路径(“标头搜索路径”)设置为$(SDKROOT)/usr/include/libxml2,但构建错误!

但是我将路径设置为

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/libxml2

构建成功!


3

Xcode 6:

请按照以下步骤操作:

1.0)选择“mainApp”目标:前往设置 -> 在“Header Search Path”中

1.1)添加以下内容: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2.

2.0)选择“TestApp”目标:前往设置 -> 在“Header Search Path”中

2.1)添加以下内容: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2.


3
正确的路径(对于“Header Search Path”)是:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/libxml2/**

更新到Xcode 4.3.1后肯定会出现问题,因为我之前正常运行的应用程序开始出现故障。将以下内容添加到头文件搜索路径中(除了/usr/include/libxml2之外,还要递归检查两者),似乎可以解决这个问题。 - jmstone617

2

有两种解决方案:

  1. 应该使用SDK根目录更新头文件搜索路径,例如:$(SDKROOT)/usr/include/libxml2
  2. 从终端安装XCode 5的命令行工具,方法是输入:xcode-select --install。 XCode 4应该在“首选项>下载”部分中有安装命令行工具的选项。

我个人会选择第二个方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接