我遇到了以下错误。
libxml / tree.h没有这样的文件或目录
我已将libxml2.dylib
添加到我的项目中,但是我遇到了这种麻烦。
请帮帮我。
答案 0 :(得分:213)
按照“设置项目文件”中的说明here进行操作。
设置项目文件
您需要将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
答案 1 :(得分:86)
添加libxml2是一个巨大,肥胖,挑剔的痛苦。如果您打算这样做,请在构建项目之前做好。
您需要以两种方式添加:
点击您的目标(而非您的项目),然后选择Build Phases
。
点击标题为Link Binary With Libraries
的显示三角形。单击+
添加库。
滚动到列表底部,然后选择libxml2.dylib
。这会将libxml2库添加到您的项目中。
现在您必须告诉您的项目在哪里查找三次次。
选择Build 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
。
在最后两种情况下,请确保在Debug 和 Release中输入路径。
在Product
菜单下选择Clean
。
然后,如果我是你(让我们面对它,我可能是)我会退出Xcode然后走开。当你回来发射时,你应该很高兴。
答案 2 :(得分:22)
1)添加" libxml2.dylib"库到我项目的目标(构建阶段 - >链接二进制文件库)
2)添加" $(SDKROOT)/ usr / include / libxml2"到TARGET上的标题搜索路径(构建设置 - >标题搜索路径)
在此之后,目标应该成功构建。
答案 3 :(得分:19)
您还需要在包含路径中添加/usr/include/libxml2
。
答案 4 :(得分:11)
形成@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
”。在“标题搜索路径”中,在Mac上添加以下路径:
/usr/include/libxml2
答案 5 :(得分:11)
Ray Wenderlich有一篇关于使用gdata解决这个问题的博客文章。基本上这些简单的步骤:
在XCode中,单击Project \ Edit Project Settings并确保选中“All Configurations”。
找到Search Paths \ Header Search Paths设置并将/ usr / include / libxml2添加到列表中。
最后,找到Linking \ Other Linker Flags部分并将-lxml2添加到列表中。
答案 6 :(得分:7)
我发现相同,我必须为最新的Xcode(4.3.x)添加$(SDKROOT)/ usr / include / libxml2。另外,让我绕圈数小时的事实是我正在修改“TARGET”而不是“PROJECT”(Xcode的新UI非常复杂,很容易被忽视)。你需要修改PROJECT!
答案 7 :(得分:5)
答案 8 :(得分:4)
我发现使用xCode 4.3.2我必须输入 $(SDKROOT)/ usr / include目录/ libxml2的 进入标题搜索字段而不是简单 的/ usr /包括/ libxml2的
答案 9 :(得分:4)
截至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
应用程序现在再次编译。
答案 10 :(得分:3)
我不确定区别是什么,只是添加项目的目标路径和目标。
答案 11 :(得分:3)
在Mountain Lion上我遇到了同样的问题,通过添加/usr/include/libxml2
以包含带有“递归”标志的路径来解决这个问题,如果以上所有内容都不富有成效,请使用此方法。
答案 12 :(得分:2)
请按照以下步骤
添加libxml2
libxml2.dylib可以在你的mac machin上找到/usr/lib/libxml2.dylib
更改“标题搜索路径”
单击[项目名称](在左侧面板中) - >项目 - >构建设置 - >选择全部(默认为基本)
在搜索框中键入标题搜索路径
双击标题搜索路径 - > + - > “$(SDKROOT)/ usr / include / libxml2”
将-lxml2添加到“其他链接器标志”
在步骤2中搜索“其他链接器标志”作为搜索
单击“其他链接标志”行。单击“+”并将“-lxml2”添加到列表中。
将您的项目类型更改为ARC - >没有,即自动参考计数为否 您可以按照步骤2
答案 13 :(得分:2)
我发现this visual tutorial很有用。
答案 14 :(得分:2)
Xcode 4.5 我完全使用了CW的解决方案。 唯一的例外是$(SDKROOT)/ usr / include / libxml2对我不起作用,我必须将“$(SDK_DIR)”/ usr / include / libxml2 添加到我的Projects < strong>标题搜索路径和用户标题搜索路径。 在该项目成功构建之后。
编辑:我的项目中有一个Google GData项目(名为MyProject)(我的项目使用)。 GData需要libxml。为了成功构建项目MyProject,我将“$(SDK_DIR)”/ usr / include / libxml2添加到MyProject的标题搜索路径,而不添加到GData的标题搜索路径。如果我没有将它添加到MyProject,项目没有构建)。答案 15 :(得分:2)
同时选择“始终搜索用户路径”为YES。在XCode 4.3.3中默认为NO
答案 16 :(得分:2)
当我在升级到Snow Leopard和XCode 3.2之后重新打开一个项目(在LeC上的XCode 3.something上开发)时遇到了这个问题。好奇的是,它只影响了某些类型的构建(模拟器构建很好,设备代码给了我错误)。我在/ usr / include中有libxml2,它确实包含libxml / tree.h。
即使是神奇的“清洁”也无法正常工作,但“空缓存......”在“XCode”菜单下(Apple徽标和文件之间)完成了伎俩(就是那里的菜单)在以前的版本?)。打败我的原因,但在干净后,没有关于libxml / tree.h的投诉
答案 17 :(得分:1)
块引用 在Xcode 4.3.x中添加libxml2
添加libxml2是一个巨大,肥胖,挑剔的痛苦。如果您打算在构建项目之前做得太多,那就去做吧。
这是怎么做的。
目标设置
单击您的目标(而不是您的项目)并选择“Build Phases”。单击标题为“Link Binary With Libraries”的显示三角形。单击“+”以添加库。滚动到列表底部,然后选择“libxml2.dylib”。这会将libxml2库2添加到您的项目中......但是等等。
项目设置
现在你必须告诉你的项目在哪里寻找它三次。
选择“构建设置”选项卡。向下滚动到“链接”部分。在项目列下,双击“Other Linker Flags”行。单击“+”并将“-lxml2”添加到列表中。
还有更多。
在同一标签中,向下滚动到“搜索路径”部分。在“框架搜索路径”行的项目列下,添加“/usr/lib/libxml2.dylib”。
在“标题搜索路径”和“用户标题搜索路径”行中添加“$(SDKROOT)/ usr / include / libxml2”。在最后两种情况下,请确保在Debug AND Release中输入路径。
然后。在“产品”菜单下选择“清洁”。
这也适用于Xcode5!谢谢!
答案 18 :(得分:1)
不要把libxml2.dylib放在frameworks文件夹下,把它放在root下面的root下面(左上角的蓝色图标)
然后点击项目(TOP左侧蓝色图标),转到Build Settings,在搜索框中输入&#34; Header Search Paths&#34;然后添加这个&#34; $(SDKROOT)/ usr / include / libxml2&#34;
此代码解决了我的问题,希望它可以帮助您解决此问题
答案 19 :(得分:1)
@Aqib Mumtaz - 我按照Parris上面标题为“在Xcode 4.3 / 5/6中添加libxml2”的说明进行操作。使用框架搜索路径的步骤不起作用,编译器会抱怨。无论如何,对那个家伙来说真是太棒了!
我正在使用Xcode 6.2b3
无论您使用的Xcode版本如何,它都是错误的。不要总是认为编译错误是真实的。很多时候,它不遵循标题搜索路径,并且包括清楚列出的未找到。更糟糕的是,导致的错误往往会指向不同的方向,因此您会浪费大量时间来分散注意力。随着那说......
从这一步开始推荐婴儿步骤...:
注意:
如果你正在为退伍军人开发一些东西,哦说一个iPhone / iPad或Mac应用程序,并且正在反对称为“MDWS”或“VIA”的东西,它们是基于SOAP的医疗记录系统接口......请联系我
答案 20 :(得分:0)
1)我将libxml文件添加到Build Phases.follow this link
2)我将其他链接标记添加为-ObjC
(适用于项目和测试项目目标)
3)我将标题搜索路径设置为"${SDKROOT}/usr/include/libxml2"
(不要忘记任何一方的双引号)(对于项目和测试项目目标)
其中一个将解决问题。如果不是,你必须应用上述所有三个。
答案 21 :(得分:0)
我认为我添加错误,然后我意识到问题是它不支持弧,所以检查这里的支持,生命保护 - &gt; http://www.michaelbabiy.com/arc-compliant-gdataxml-library/