次のエラーが発生します。
libxml/tree.h そのようなファイルまたはディレクトリはありません
すでにlibxml2.dylib
プロジェクトに追加しましたが、この種の問題が発生しています。私を助けてください。
次のエラーが発生します。
libxml/tree.h そのようなファイルまたはディレクトリはありません
すでにlibxml2.dylib
プロジェクトに追加しましたが、この種の問題が発生しています。私を助けてください。
libxml2 を追加することは、お尻の大きな、太い、厄介な苦痛です。それを行う場合は、プロジェクトの構築に行き過ぎる前に実行してください。
次の 2 つの方法で追加する必要があります。
ターゲット (プロジェクトではない) をクリックし、 を選択しますBuild Phases
。
というタイトルの表示三角形をクリックしLink Binary With Libraries
ます。をクリックして+
ライブラリを追加します。
リストの一番下までスクロールし、 を選択しますlibxml2.dylib
。これにより、libxml2 ライブラリがプロジェクトに追加されます。
ここで、プロジェクトに検索する場所をあと3回指定する必要があります。
を選択し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
ます。
最後の 2 つのケースでは、DebugとRelease にパスが入力されていることを確認してください。
Product
メニューの下でを選択しますClean
。
そして、もし私があなただったら (正直に言うと、私はおそらくそうです)、Xcode をやめて立ち去ります。戻ってきて起動すると、準備完了です。
1) "libxml2.dylib" ライブラリをプロジェクトの TARGET に追加します (ビルド フェーズ -> バイナリをライブラリにリンク)。
2) TARGET のヘッダー検索パスに「$(SDKROOT)/usr/include/libxml2」を追加します (ビルド設定 -> ヘッダー検索パス)。
この後、ターゲットは正常にビルドされます。
/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 を追加します。
@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
同じことがわかりました。最新の Xcode (4.3.x) には $(SDKROOT)/usr/include/libxml2 を追加する必要がありました。また、「PROJECT」ではなく「TARGET」を変更していたという事実もありました (Xcode の新しい UI は非常に複雑であるため、見落としがちです)。プロジェクトを変更する必要があります!
別の解決策。ヘッダー検索パスなどのすべての手順を実行し、プロジェクト設定のプロジェクトで選択した構成が正しいものであることを確認します。プロジェクトビルド設定をダブルクリックすると、配布設定が変更されている可能性がありますが、「デバッグ」設定にヘッダー検索パスを追加しようとしています。したがって、正しい設定になっていることを確認してください。またはすべての設定を選択します
Mavericks (OS X 10.9) 以降、/usr/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
、フラグ「再帰」を含むパスを追加することで解決されました。上記のすべてが実りがない場合は、これを使用してください。
Xcode4.5CWのソリューションを完全に使用しました。唯一の例外は、$(SDKROOT)/ usr / include / libxml2が機能せず 、プロジェクトヘッダー検索パスとユーザーヘッダー検索パスに「$(SDK_DIR)」/ usr / include/libxml2を追加する必要があったことです。 。その後、プロジェクトは正常にビルドされます。
編集:プロジェクト内にGoogle GDataプロジェクト(MyProjectと呼ばれる)があります(私のプロジェクトでは使用しています)。GDataにはlibxmlが必要です。プロジェクトMyProjectを正常にビルドするには、 「$(SDK_DIR)」/ usr / include / libxml2をMyProjectのヘッダー検索パスに追加し、GDataのヘッダー検索パスには追加しません。MyProjectに追加しなかった場合、プロジェクトはビルドされませんでした)。
また、[常にユーザー パスを検索する] を [はい] に選択します。XCode 4.3.3 では、デフォルトで NO
この視覚的なチュートリアルは役に立ちました。
Snow Leopard と XCode 3.2 にアップグレードした後、プロジェクト (Leopard 上の XCode 3.something で開発された) を再度開いたときに、この問題が発生しました。興味深いことに、これは一部の種類のビルドにのみ影響を与えました (エミュレータ ビルドは問題なく動作し、デバイス ビルドはエラーを出しました)。また、/usr/include に libxml2 があり、実際に libxml/tree.h が含まれています。
魔法の「Clean」でさえ機能しませんでしたが、「XCode」メニュー (Apple ロゴとファイルの間) の下にある「Empty Caches...」でうまくいきました (そのメニューは以前のバージョンにありましたか?)。理由はわかりませんが、クリーンの後、libxml/tree.hに関する苦情はなくなりました
次の手順に従ってください
libxml2 の追加
libxml2.dylib は、Mac マシンの /usr/lib/libxml2.dylib にあります。
「ヘッダー検索パス」を変更
します [プロジェクト名] (左側のパネル) をクリックします -> プロジェクト -> ビルド設定 -> すべてを選択 (デフォルトは基本)
検索ボックスにヘッダー検索パスを入力します ヘッダー検索パスを
ダブルクリックします -> + - > "$(SDKROOT)/usr/include/libxml2"
「その他のリンカー フラグ」に -lxml2 を追加
手順 2 の検索で「その他のリンカー フラグ」を検索し
、「その他のリンカー フラグ」の行をクリックします。「+」をクリックして、「-lxml2」をリストに追加します。
プロジェクトタイプをARCに変更します->いいえ、つまり自動参照カウントをいいえにしますステップ2に従ってARCを検索できます
@Aqib Mumtaz - 上記の「Xcode 4.3 / 5 / 6 に libxml2 を追加する」というタイトルの Parris のメモの指示に従って動作させました。フレームワークの検索パスを使用する手順が機能せず、コンパイラが文句を言います。とにかく、その男に大きな称賛を!
Xcode 6.2b3 を使用しています
使用している Xcode のバージョンに関係なく、バグがあります。コンパイル エラーが実際のものであると常に想定しないでください。ヘッダー検索パスをたどらず、明確にリストされたインクルードが見つからない場合がよくあります。さらに悪いことに、結果として発生するエラーは、さまざまな方向を指し示す傾向があるため、気を散らすもので多くの時間を無駄にします. とは言うものの...
これを正確に開始することにより、ベイビーステップをお勧めします...:
ノート:
お役に立てれば。
たまたま退役軍人向けの何かを開発していて、たとえば iPhone / iPad または Mac アプリを開発していて、医療記録システムへの SOAP ベースのインターフェースである「MDWS」または「VIA」と呼ばれるものに取り組んでいる場合は、私に連絡してください。
libxml2.dylib を Frameworks フォルダーの下に配置しないでください。ルートのすぐ下に配置します (左上の青いアイコン)。
次に、プロジェクト(左上の青いアイコン)をクリックし、ビルド設定に移動し、検索ボックスに「ヘッダー検索パス」と入力して、この「$(SDKROOT)/usr/include/libxml2」を追加します
このコードは私の問題を解決し、これを修正するのに役立つことを願っています
1)ビルドフェーズにlibxmlファイルを追加しました。このリンクをたどってください
2)その他のリンカーフラグを追加しました-ObjC
(プロジェクトとテストプロジェクトの両方のターゲット用)
3)ヘッダー検索パスを次のように設定します"${SDKROOT}/usr/include/libxml2"
(どちらの側でも二重引用符を忘れないでください)(プロジェクトとテストプロジェクトの両方のターゲットに対して)
それらのうちの1つが問題を解決します。そうでない場合は、上記の 3 つすべてを適用する必要があります。