我遇到了如下错误。
libxml/tree.h没有这个文件或目录
我已经将libxml2.dylib
添加到我的项目中,但是我仍然遇到这种麻烦。请帮帮我。
我遇到了如下错误。
libxml/tree.h没有这个文件或目录
我已经将libxml2.dylib
添加到我的项目中,但是我仍然遇到这种麻烦。请帮帮我。
请按照这里的指示,在“设置项目文件”下进行操作。
设置项目文件
您需要将libxml2.dylib添加到项目中(不要放在“框架”部分)。 在Mac上, 您可以在
/usr/lib/libxml2.dylib
找到它,在iPhone上, 您需要使用/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylib
版本。由于libxml2是一个.dylib文件(而不是友好的.framework文件),我们还需要做一件事。 进入项目构建设置 (项目 -> 编辑项目设置 -> 构建),找到“搜索路径”。 在“头文件搜索路径”中添加以下路径:
$(SDKROOT)/usr/include/libxml2
也请参阅问问题者的回答。/usr/include
中确实有符号链接,那就可以这样工作。我还没有尝试安装libxml2,因此无法确认默认行为。但是,是的,用这种方式链接它要好得多。 - Matt Ball添加 libxml2 库非常麻烦,如果你要添加,请在项目构建过程中尽早添加。
需要通过两种方式添加:
选择你的目标(不是你的项目),然后选择 Build Phases
。
点击标题为 Link Binary With Libraries
的三角形图标,再点击 +
添加库。
滚动到列表底部,选择 libxml2.dylib
。这样就将 libxml2 库添加到项目中了。
现在你需要告诉你的项目在哪里寻找它,需要添加三次。
选择 Build Settings
选项卡。
在 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
。
在这最后两种情况下,请确保路径在 Debug 和 Release 中输入。
在 Product
菜单中选择 Clean
。
所以,如果我是你(面对现实吧,我很可能就是),我会退出Xcode并离开。当你回来并启动时,你应该可以开始了。
1)向项目的TARGET中添加“libxml2.dylib”库(Build Phases -> Link Binary With Libraries)
2)在TARGET的Header Search Paths中添加“$(SDKROOT)/usr/include/libxml2”(Build Settings -> Header Search Paths)
完成这些步骤后,项目应该可以成功构建。
/usr/include/libxml2
添加到您的包含路径中。Ray Wenderlich的一篇博客文章介绍了使用gdata解决此问题的方法。基本上有以下简单步骤:
在XCode中,点击Project\Edit Project Settings ,确保选中 “All Configurations”。
找到 Search Paths\Header Search Paths设置,并将 /usr/include/libxml2 添加到列表中。
最后,找到 Linking\Other Linker Flags 部分并将 -lxml2 添加到列表中。
原始文章:使用gdataxml读取和写入xml文档
从@Matt Ball的链接中,我发现以下内容对我很有帮助。
您需要将libxml2.dylib添加到您的项目中(不要把它放在框架部分)。在Mac上,您可以在/usr/lib/libxml2.dylib
找到它,在iPhone上,您需要使用/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libxml2.dylib
版本。
由于libxml2是一个.dylib文件(不是一个友好的.framework文件),我们还需要做一件事。进入项目构建设置 (Project->Edit Project Settings->Build
) 并查找"Search Paths
"。在"Header Search Paths"中,添加以下路径:
/usr/include/libxml2
另一个解决方案。在头文件搜索路径等所有步骤中执行,并确保您在项目设置中选择的配置是正确的。当您双击项目构建设置时,可能正在更改分发设置,但您正在尝试在“调试”设置中添加头文件搜索路径。因此,请确保您处于正确的设置中或选择所有设置。
从 Mavericks (OS X 10.9) 开始,/usr/include 目录已经被删除。这里的一半答案已经过时了,因为在你解决 include 目录之前,应用程序将无法编译。
我通过在终端中创建到 MacOSX SDK 的符号链接来解决了这个问题,使用以下命令:
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
应用程序现在可以再次编译。