libxml / tree.h没有这样的文件或目录
我收到以下错误。
libxml / tree.h没有这样的文件或目录
我已经添加libxml2.dylib
到我的项目,但是我遇到这种types的麻烦。 请帮帮我。
按照这里的说明 ,在“设置你的项目文件”下。
设置您的项目文件
您需要将libxml2.dylib添加到您的项目中(不要将其放在“框架”部分中)。 在Mac上,您可以在
/usr/lib/libxml2.dylib
find它,而对于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.dylib
find它,而对于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
请按照以下步骤
-
添加libxml2
可以在/usr/lib/libxml2.dylib的mac machin上findlibxml2.dylib -
更改“标题searchpath”
点击[Project Name](左侧) – > Project – > Build Settings – > Select All(默认为Basic)
在search框中input标题searchpath
双击标题searchpath – > + – >“$(SDKROOT)/ usr / include / libxml2” -
将“-lxml2”添加到“其他链接器标志”
在步骤2中search“其他链接器标志”作为search
点击“Other Linker Flags”行。 点击“+”并添加“-lxml2”到列表中。 -
将项目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,包括明确列出没有被发现。 更糟的是,结果中的错误往往指向不同的方向,所以你浪费了大量的时间与分心。 有了那个说…
从这个开始推荐宝贝步骤…:
- 创build单个窗口Mac OS X Cocoa项目名为“Bench Test”
- 直接在Finder中将XpathQuery添加到您的项目源目录中
- 点击项目窗口的红色closuresbutton下的小文件夹图标
- 将XpathQuery(如果包含该文件夹)拖放到项目窗口显示左侧的项目资产中
- 将/Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libxml2.2.dylib拖放到您的项目资产中,位于底部。 这将添加到您的“构build阶段” – >“与库链接二进制”的简单方法
- 点击左侧顶部的项目资产列中的“Bench Test”项目图标
- search“Build Settings”下的“Other Linker Flags”
- 在“Bench Test”项目图标栏下添加“-lxml2”(sans“”)到“Other Linker Flags”
- 在“Build Settings”下search“header search”
- 在“Bench Test”项目图标栏下添加“$(SDKROOT)/ usr / include / libxml2”(sans“”)到“Header Search Paths”
- 将“$(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/