Xcode升级后,#import <libxml/tree.h>文件找不到。

36

昨晚我更新了我的iPhone到iOS 6.1,但我的当前版本的xcode无法将项目构建到手机上,因为我需要最新版本。

我从xcode 4.5.2升级到了xcode 4.6,但在我的项目文件中没有做任何更改。

原本可以完全编译的代码现在给我报了一个“文件未找到”的错误。

#import <libxml/tree.h> 'libxml/tree.h' file not found

我已经正确地将我的搜索路径链接起来了

$(SDKROOT)/usr/include/libxml2

并且libxml2在构建阶段中链接和需要。

编辑:

奇怪的是我将我的搜索路径更改为以下内容,然后就行了。

/usr/include/libxml2

不确定为什么这样修复了问题,能否有人给我解释一下 xcode 中发生了什么变化?


2
这个有帮助吗:https://dev59.com/oW445IYBdhLWcg3wWZAU - trojanfoe
2
嗯,我按照上面的方法解决了我的问题,只是我不明白在4.5.2和4.6之间发生了什么导致我的项目出现了问题。 - Bongeh
哦,就这样了吗?谢谢Bongeh帮我解决了在Xcode4.6中的问题。 - Boris Gafurov
你使用的Xcode版本是什么?因为我们现在已经到了4.6.2版本了。你可以检查以下目录:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/,那应该是你的SDKROOT。并检查一下/usr/include/libxml2是否存在。 - Leon
显示名称和设置名称有关系吗? - Chris.Stover
5个回答

66

在你的构建设置中,将以下内容添加到你的头文件搜索路径中:

$SDKROOT/usr/include/libxml2

4
我不确定你是否理解了问题,我遇到问题的原因是我一开始就按照你上面说的去做了。 - Bongeh
以防万一有人和我当时遇到相同的情况:记得将搜索路径也添加到测试目标中。 - enreas
对我有用,谢谢! - Amit Ajmera

6
对于我来说,有效的方法是将以下内容添加到头文件搜索路径中:
$(SDKROOT)/usr/include/libxml2

与其他答案略有不同,可能与Xcode的新版本有关。

5

添加:$SDKROOT/usr/include/libxml2

在此输入图片描述


2
在Xcode6及更高版本中,将以下内容添加到您的“头文件搜索路径”中:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2

记得将搜索路径添加到测试目标中。


0

我在我的Mac上升级了libxml2,然后:

If you need to have libxml2 first in your PATH run:                                                                                                                                                                                             
  echo 'export PATH="/usr/local/opt/libxml2/bin:$PATH"' >> ~/.zshrc

For compilers to find libxml2 you may need to set:
  export LDFLAGS="-L/usr/local/opt/libxml2/lib"
  export CPPFLAGS="-I/usr/local/opt/libxml2/include"

For pkg-config to find libxml2 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"

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