objective c - libxml/tree.h沒有這樣的文件或目錄




objective-c iphone (15)

Blockquote在Xcode 4.3.x中添加libxml2

添加libxml2是一個巨大的,肥胖的,挑剔的屁股疼痛。 如果你打算這樣做,那麼在你建立你的項目過度之前就要這樣做。

就是這樣。

目標設定

點擊你的目標(不是你的項目)並選擇“構建階段”。 點擊標題為“Link Binary With Libraries”的顯示三角形。 點擊“+”添加庫。 滾動至列表底部並選擇“libxml2.dylib”。 這增加了libxml2庫2你的項目......但是等等。

項目設置

現在你必須告訴你的項目在哪裡再找三次。

選擇“構建設置”選項卡。 向下滾動到“鏈接”部分。 在您的項目列下,雙擊“其他鏈接器標記”行。 點擊“+”並將“-lxml2”添加到列表中。

還有更多。

在相同的選項卡中,向下滾動到“搜索路徑”部分。 在“框架搜索路徑”行的項目列中,添加“/usr/lib/libxml2.dylib”。

在“標題搜索路徑”和“用戶標題搜索路徑”行中添加“$(SDKROOT)/ usr / include / libxml2”。 在最後兩種情況下,請確保路徑在“調試和發布”中輸入。

然後。 在“產品”菜單下選擇“清潔”。

這是工作和Xcode5呢! 謝謝!

我收到以下錯誤。

libxml / tree.h沒有這樣的文件或目錄

我已經將libxml2.dylib添加到我的項目中,但是我遇到了這種類型的問題。 請幫幫我。


在Xcode 4.3 / 5/6中添加libxml2

添加libxml2是一個巨大的,肥胖的,挑剔的屁股疼痛。 如果你打算這樣做,那麼在建立你的項目之前,先做好。

您需要以兩種方式添加它:

1.目標設定

點擊你的目標(不是你的項目)並選擇Build Phases

點擊標題為Link Binary With Libraries揭示三角 。 點擊+添加庫。

滾動到列表底部並選擇libxml2.dylib 。 這會將libxml2庫添加到您的項目中。

2.項目設置

現在你必須告訴你的項目在哪裡再找三次。

選擇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

在最後兩種情況下,確保路徑在調試發布中輸入。

3.清潔

Product菜單下選擇Clean

那麼,如果我是你(讓我面對它,我可能是),我會退出Xcode並走開。 當你回來發射你應該很好去。


我在Xcode 8.0 +單元測試項目中分三步解決

1)我將libxml文件添加到Build Phases.follow此link

2)我將其他鏈接器標誌 -ObjC-ObjC (對於項目和測試項目目標)

3)我將標題搜索路徑設置為"${SDKROOT}/usr/include/libxml2" (不要忘記雙方都有雙引號)(對於項目和測試項目目標)

其中之一將解決這個問題。 如果不是,你必須應用以上全部三個。


@Aqib Mumtaz - 我按照Parris上面註釋中“在Xcode 4.3 / 5/6中添加libxml2”的說明得到了它的工作。 使用框架搜索路徑的步驟不起作用,編譯器會抱怨。 無論如何,這個傢伙都很贊!

我正在使用Xcode 6.2b3

無論您使用的Xcode版本如何,它都是錯誤的。 不要總是認為編譯錯誤是真實的。 有很多時候它不遵循標題搜索路徑,並且沒有找到明確列出的內容。 更糟糕的是,結果的錯誤往往會讓你指向不同的方向,所以你會浪費大量的時間來分散注意力。 照這樣說...

從這個開始推薦嬰兒步驟...:

  1. 創建一個單獨的窗口Mac OS X Cocoa項目名為“Bench Test”
  2. 直接在Finder中將XpathQuery添加到項目源目錄中
  3. 點擊項目窗口紅色關閉按鈕下的小文​​件夾圖標
  4. 將XpathQuery(如果包含該文件夾)拖放到項目窗口顯示左側的項目資產中
  5. 將/Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libxml2.2.dylib拖放到您的項目資產中,位於底部。 這會將它添加到您的“構建階段” - >“與庫鏈接二進製文件”中
  6. 點擊左側頂部項目資產列中的“Bench Test”項目圖標
  7. 在“Build Settings”下搜索“Other Linker Flags”
  8. 在“Bench Test”項目圖標欄下添加“-lxml2”(sans“”)到“Other Linker Flags”
  9. 在“構建設置”下搜索“標題搜索”
  10. 在“Bench Test”項目圖標欄下添加“$(SDKROOT)/ usr / include / libxml2”(sans“”)到“Header Search Paths”
  11. 在“Bench Test”項目圖標欄下的“User Header Search Paths”中添加“$(SDKROOT)/ usr / include / libxml2”(sans“”)

筆記:

  • 除非將搜索路徑添加到“標題搜索路徑”和“用戶標題搜索路徑”,否則我的行為將不起作用。
  • 要在查找器中找到libxml2.2.dylib,您需要右鍵單擊您的Xcode圖標,然後選擇“Show Package Contacts”(編輯:什麼是hack ..將所有垃圾填入應用程序)
  • 準備好更改鏈接的libxml2.2.dylib。 Xcode中的一個有意用於確保Xcode獲取它所了解的內容,並在理論上進行了測試。 稍後您可能想在系統中使用dylib(在本主題中閱讀)
  • 當我使用Xcode 6.2b3時,我可能會有一個更新的libxml2.2.dylib。 你的名字可能略有不同。 只需在文件夾中搜索以“libxml”開頭並以“.dylib”結尾的內容即可。 也可能有一個別名,如“libxml2.dylib”。 不要立即使用它,因為解析別名會將另一個變量添加到Xcode“可能存在的錯誤”方程中。
  • 為了理智,我將外部庫的別名,重命名為它們是哪一個,並將它們與Finder中的項目文件保持在同一級別。 如果他們更改位置,更改名稱等,別名將在其中包含Get Info(原始文件的完整路徑),以便稍後進行檢測以重新獲得項目編譯和鏈接。 (符號鏈接太容易了,對Mac來說不太自然)
  • 最後,也是非常重要的,請參閱http://www.cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html ,您可以在其中下載XpathQuery並獲得更多優點。

希望這可以幫助。

如果你碰巧正在為退伍軍人開發一些東西,那就說一個iPhone / iPad或Mac應用程序,並且正在與醫療記錄系統的基於SOAP的接口“MDWS”或“VIA”配合工作......請與我聯繫


Xcode 4.5我完全使用了CW的解決方案。 唯一的例外是$(SDKROOT)/ usr / include / libxml2不適用於我,我必須在項目標題搜索路徑用戶頭搜索路徑中添加“$(SDK_DIR)”/ usr / include / libxml2 。 在該項目成功建立之後。

編輯:我有我的項目中的Google GData項目(稱為MyProject)(我的項目使用)。 GData需要libxml。 要成功構建項目MyProject,我將“$(SDK_DIR)”/ usr / include / libxml2添加到MyProject的Header搜索路徑,否則添加到GData的Header搜索路徑 。 如果我沒有將它添加到MyProject,項目沒有建立 )。


不要把libxml2.dylib放在frameworks文件夾下放在root下面的根目錄下(左上角的藍色圖標)

然後在搜索框中輸入“Header Search Paths”,然後添加這個“$(SDKROOT)/ usr / include / libxml2”,然後點擊Project(左上角藍色圖標),轉到Build Settings

這段代碼解決了我的問題,希望它能幫助你解決這個問題


在Mountain Lion上,我遇到了同樣的問題,通過添加/usr/include/libxml2以包含帶有“遞歸”標誌的路徑解決了這個問題,如果以上所有內容都不成功,請使用此問題。


在升級到Snow Leopard和XCode 3.2後,我重新打開了一個項目(這是在XCode 3.Beopard上開發的一個項目)時遇到了這個問題。 好奇的是,它只影響某些種類的構建(模擬器構建正常,設備給了我錯誤)。 我在/ usr / include下有libxml2,它確實包含libxml / tree.h。

即使是“Clean”的魔法也沒有用, 但是在“XCode”菜單下(Apple徽標和File之間)的“Empty Caches ...”做了這個訣竅(在之前的版本中有那個菜單嗎?)。 擊敗我的原因,但經過清理後,沒有更多關於libxml / tree.h的投訴


從小牛(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

應用程序現在再次編譯。


您還需要將/usr/include/libxml2到包含路徑中。




我發現,使用xCode 4.3.2,我不得不在/ Header Search字段中輸入$(SDKROOT)/ usr / include / libxml2,而不是簡單地將/ usr / include / libxml2


按照here ,在“設置您的項目文件”下。

設置你的項目文件

您需要將libxml2.dylib添加到您的項目中(請勿將其放入“框架”部分中)。 在Mac上,您可以在/usr/lib/libxml2.dylib找到它,而對於iPhone,則需要/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylib版本。

由於libxml2是一個.dylib(不是一個友好的框架),我們還有一件事要做。 轉到項目構建設置(Project-> Edit Project Settings-> Build)並找到“搜索路徑”。 在“標題搜索路徑”中添加以下路徑:

$(SDKROOT)/usr/include/libxml2

另請參閱OP的答案


請按照以下步驟操作

  1. 添加libxml2
    可以在/usr/lib/libxml2.dylib的mac machin上找到libxml2.dylib

  2. 更改“標題搜索路徑”
    點擊[Project Name](左側面板) - > Project - > Build Settings - > Select All(默認為Basic)
    在搜索框中輸入標題搜索路徑
    雙擊標題搜索路徑 - > + - >“$(SDKROOT)/ usr / include / libxml2”

  3. 將“-lxml2”添加到“其他鏈接器標誌”
    在步驟2中搜索“其他鏈接器標誌”作為搜索
    點擊“其他鏈接器標誌”行。 點擊“+”並將“-lxml2”添加到列表中。

  4. 將項目類型更改為ARC - >否,即自動引用計數為否您可以按照步驟2中的步驟搜索ARC





libxml2