次のエラーが発生します。
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ではない)なので、まだやることが1つあります。プロジェクトビルド設定(プロジェクト->プロジェクト設定の編集->ビルド)に移動し、「検索パス」を見つけます。 「ヘッダー検索パス」で、次のパスを追加します。
$(SDKROOT)/usr/include/libxml2
OPの答え も参照してください。
Libxml2を追加することは、お尻に大きな、太い、厄介な痛みです。あなたがそれをやろうとしているなら、あなたがあなたのプロジェクトを構築するのに行き過ぎる前にそれをしなさい。
2つのwayで追加する必要があります。
(プロジェクトではなく)ターゲットをクリックし、_Build Phases
_を選択します。
_Link Binary With Libraries
_というタイトルの表示三角形をクリックします。ライブラリを追加するには、_+
_をクリックします。
リストの一番下までスクロールし、_libxml2.dylib
_を選択します。これにより、プロジェクトにlibxml2ライブラリが追加されます。
ここで、プロジェクトの場所をプロジェクトに指示する必要がありますthreeさらに何回か。
_Build Settings tab
_を選択します。
Linking
セクションまでスクロールします。プロジェクトの列の下で、_Other Linker Flags
_行をダブルクリックします。 _+
_をクリックして、リストに_-lxml2
_を追加します。
より一層。
同じタブで、_Search Paths
_セクションまで下にスクロールします。
プロジェクト列の下の_Framework Search Paths
_行の_/usr/lib/libxml2.dylib
_を追加します。
_Header Search Paths
_ andで_User Header Search Paths
_行に$(SDKROOT)/usr/include/libxml2
を追加します。
最後の2つのケースでは、デバッグにパスが入力されていることを確認してくださいand Release。
Product
メニューでClean
を選択します。
それから、もし私があなただったら(そしてそれに直面したなら、私はたぶんそうです)、私はXcodeをやめて、立ち去ったでしょう。戻って起動したら、準備ができているはずです。
1)「libxml2.dylib」ライブラリをプロジェクトのターゲットに追加します(ビルドフェーズ->ライブラリとバイナリをリンク)
2)「$(SDKROOT)/ usr/include/libxml2」をTARGETのヘッダー検索パスに追加します(ビルド設定->ヘッダー検索パス)
この後、ターゲットは正常にビルドされます。
また、インクルードパスに/usr/include/libxml2
を追加する必要があります。
Ray Wenderlichには、この問題を解決するgdataの使用に関するブログ投稿があります。基本的にこれらの簡単な手順:
XCodeで、[プロジェクト]、[プロジェクト設定の編集]の順にクリックし、[すべての構成]がオンになっていることを確認します。
Search Paths\Header Search Paths設定を見つけて、リストに/ usr/include/libxml2を追加します。
最後に、Linking\Other Linker Flagsセクションを見つけて、リストに-lxml2を追加します。
@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ではない)なので、まだやることが1つあります。プロジェクトビルド設定(Project->Edit Project Settings->Build
)そして「Search Paths
"。[ヘッダー検索パス]で、Macで次のパスを追加します。
/usr/include/libxml2
同じことがわかったので、最新のXcode(4.3.x)に$(SDKROOT)/ usr/include/libxml2を追加する必要がありました。また、私が何時間も回り続けたのは、「プロジェクト」ではなく「ターゲット」を変更していたという事実です(Xcodeの新しいUIは非常に複雑であるため、簡単に見落としがちです)。プロジェクトを変更する必要があります!
別の解決策。ヘッダー検索パスなどですべての手順を実行し、プロジェクト設定でプロジェクトで選択した構成が正しいことを確認します。プロジェクトのビルド設定をダブルクリックすると、Distribution設定が変更されている可能性がありますが、「デバッグ」設定にヘッダー検索パスを追加しようとしています。そのため、正しい設定になっていることを確認してください。またはすべての設定を選択します
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
これで、アプリケーションが再びコンパイルされます。
XCode 4.3.2では、単に/ usr/include/libxml2ではなく、$(SDKROOT)/ usr/include/libxml2をヘッダー検索フィールドに入力する必要があることがわかりました。
Mountain Lionでも同じ問題に直面していましたが、/usr/include/libxml2
フラグ "recursive"を持つパスを含めるには、上記のすべてが役に立たない場合にこれを使用します。
違いはわかりませんが、プロジェクトとターゲットへのインクルードパスを追加します。
次の手順に従ってください
Libxml2の追加
libxml2.dylibは、Macマシンの/usr/lib/libxml2.dylibにあります。
「ヘッダー検索パス」を変更する
[プロジェクト名](左パネル)->プロジェクト->ビルド設定->すべて選択(デフォルトは基本)をクリックします。
検索ボックスにヘッダー検索パスを入力
ヘッダー検索パスをダブルクリック-> +-> "$(SDKROOT)/ usr/include/libxml2"
-lxml2を「その他のリンカーフラグ」に追加します
ステップ2での検索として「その他のリンカーフラグ」を検索します
「その他のリンカーフラグ」行をクリックします。 「+」をクリックして、「-lxml2」をリストに追加します。
プロジェクトの種類をARCに変更->いいえi.e自動参照カウントをいいえに変更手順2でARCを検索できます
また、[常にユーザーパスを検索する]を[はい]に選択します。 XCode 4.3.3では、デフォルトでNO
Snow LeopardとXCode 3.2にアップグレードした後、プロジェクト(LeopardのXCode 3.somethingで開発されたもの)を再度開いたときに、この問題が発生しました。興味深いことに、それはある種のビルドにしか影響しませんでした(エミュレーターのビルドはうまくいきましたが、デバイスのビルドではエラーが出ました)。そして、/ usr/includeにlibxml2があり、実際にはlibxml/tree.hが含まれています。
魔法の「Clean」でも機能しませんでした、but「XCode」メニューの下の「Empty Caches ...」(Appleの間)ロゴとファイル)トリックを行いました(以前のバージョンではそのメニューはありましたか?)。私の理由を打ち負かしましたが、きれいにした後、libxml/tree.hに関する苦情はもうありませんでした
Xcode 4.5 CWのソリューションを完全に使用しました。唯一の例外は、$(SDKROOT)/ usr/include/libxml2が機能しなかったため、プロジェクトに"$(SDK_DIR)"/usr/include/libxml2を追加する必要があったことです- ヘッダー検索パスおよびユーザーヘッダー検索パス。そのプロジェクトが正常にビルドされた後。
編集:私のプロジェクト(MyProjectと呼ばれる)内にGoogle GDataプロジェクトがあります(私のプロジェクトでは使用しています)。 GDataにはlibxmlが必要です。プロジェクトMyProjectを正常にビルドするには、"$(SDK_DIR)"/usr/include/libxml2をMyProjectのヘッダー検索パスに追加し、GDataのヘッダー検索パスにnoを追加します。 MyProjectに追加しなかった場合、プロジェクトビルドしなかった)。
このビジュアルチュートリアル が便利だと思いました。
Xcode 4.3.xでlibxml2を追加するブロック引用
Libxml2を追加することは、お尻に大きな、太い、厄介な痛みです。あなたがそれをやろうとしているなら、あなたがあなたのプロジェクトを構築するのに行き過ぎる前にそれをしなさい。
方法は次のとおりです。
ターゲット設定
(プロジェクトではなく)ターゲットをクリックし、「ビルドフェーズ」を選択します。 「ライブラリとバイナリをリンク」というタイトルの公開三角形をクリックします。ライブラリを追加するには、「+」をクリックします。リストの一番下までスクロールし、「libxml2.dylib」を選択します。これにより、プロジェクトにlibxml2ライブラリー2が追加されますが、しばらくお待ちください。
プロジェクト設定
ここで、プロジェクトをさらに3回検索する場所を指定する必要があります。
「ビルド設定」タブを選択します。 「リンク」セクションまでスクロールします。プロジェクトの列の下にある「その他のリンカーフラグ」行をダブルクリックします。 「+」をクリックして、「-lxml2」をリストに追加します。
より一層。
同じタブで、[検索パス]セクションまでスクロールします。 「Framework Search Paths」行のプロジェクトの列の下に、「/ usr/lib/libxml2.dylib」を追加します。
「ヘッダー検索パス」および「ユーザーヘッダー検索パス」行に「$(SDKROOT)/ usr/include/libxml2」を追加します。最後の2つのケースでは、デバッグとリリースにパスが入力されていることを確認してください。
それから。 [製品]メニューで[クリーン]を選択します。
これは機能しており、Xcode5でも機能します!ありがとうございました!
@Aqib Mumtaz-上記の「Xcode 4.3/5/6にlibxml2を追加する」と題されたParrisのメモの指示に従って動作しました。フレームワーク検索パスを使用するステップは機能せず、コンパイラーは文句を言います。とにかくそのフェラに大きな称賛を!
Xcode 6.2b3を使用しています
使用しているXcodeのバージョンに関係なく、バグがあります。コンパイルエラーが本当であると常に仮定しないでください。ヘッダー検索パスをたどらず、明確にリストされているものが見つからない場合が多くあります。さらに悪いことに、発生するエラーはさまざまな方向を指す傾向があるため、気を散らすことに多くの時間を浪費します。とは言うものの...
正確にこれを開始して、赤ちゃんの手順を推奨します...:
ノート:
お役に立てれば。
退役軍人向けに何かを開発している場合、iPhone/iPadまたはMacアプリを言うと、「MDWS」または「VIA」と呼ばれる、SOAPベースの医療用インターフェース記録システム...私に連絡してください
Libxml2.dylibをframeworksフォルダーの下に置かないでください。ルートのすぐ下のルートの下に置きます(左上の青いアイコン)
次に、プロジェクト(上左の青いアイコン)をクリックし、ビルド設定に移動して、検索ボックスに「ヘッダー検索パス」と入力し、この「$(SDKROOT)/ usr/include/libxml2」を追加します
このコードは私の問題を解決し、あなたがこれを修正するのに役立つことを願っています
私は間違って追加したかったのですが、アークをサポートしていないという問題に気づいたので、ここでサポートを確認してください、ライフセーバー-> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/
1)ビルドフェーズにlibxmlファイルを追加しました。これに従ってください link
2)その他のリンカーフラグを-ObjC
として追加しました(プロジェクトおよびテストプロジェクトターゲットの両方)
3)Header Search Pathを"${SDKROOT}/usr/include/libxml2"
として設定します(両側の二重引用符を忘れないでください)(プロジェクトターゲットとテストプロジェクトターゲットの両方で)
それらの1つが問題を解決します。そうでない場合は、上記の3つすべてを適用する必要があります。