web-dev-qa-db-ja.com

libxml / tree.hそのようなファイルまたはディレクトリはありません

次のエラーが発生します。

libxml/tree.hそのようなファイルまたはディレクトリはありません

既に追加していますlibxml2.dylib私のプロジェクトに、しかし、私はこの種の問題を抱えています。私を助けてください。

98

「プロジェクトファイルのセットアップ」の下の指示に従ってください こちら

プロジェクトファイルのセットアップ

プロジェクトに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の答え も参照してください。

213
Matt Ball

Xcode 4.3/5/6でのlibxml2の追加

Libxml2を追加することは、お尻に大きな、太い、厄介な痛みです。あなたがそれをやろうとしているなら、あなたがあなたのプロジェクトを構築するのに行き過ぎる前にそれをしなさい。


2つのwayで追加する必要があります。

1.ターゲット設定

(プロジェクトではなく)ターゲットをクリックし、_Build Phases_を選択します。

_Link Binary With Libraries_というタイトルの表示三角形をクリックします。ライブラリを追加するには、_+_をクリックします。

リストの一番下までスクロールし、_libxml2.dylib_を選択します。これにより、プロジェクトにlibxml2ライブラリが追加されます。

2.プロジェクト設定

ここで、プロジェクトの場所をプロジェクトに指示する必要があります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。

3.きれいにする

ProductメニューでCleanを選択します。

それから、もし私があなただったら(そしてそれに直面したなら、私はたぶんそうです)、私はXcodeをやめて、立ち去ったでしょう。戻って起動したら、準備ができているはずです。

86
e.w. parris

Xcode 6では、次のことをしなければなりませんでした。

1)「libxml2.dylib」ライブラリをプロジェクトのターゲットに追加します(ビルドフェーズ->ライブラリとバイナリをリンク)

2)「$(SDKROOT)/ usr/include/libxml2」をTARGETのヘッダー検索パスに追加します(ビルド設定->ヘッダー検索パス)

この後、ターゲットは正常にビルドされます。

22
Andy Shephard

また、インクルードパスに/usr/include/libxml2を追加する必要があります。

Ray Wenderlichには、この問題を解決するgdataの使用に関するブログ投稿があります。基本的にこれらの簡単な手順:

XCodeで、[プロジェクト]、[プロジェクト設定の編集]の順にクリックし、[すべての構成]がオンになっていることを確認します。

Search Paths\Header Search Paths設定を見つけて、リストに/ usr/include/libxml2を追加します。

最後に、Linking\Other Linker Flagsセクションを見つけて、リストに-lxml2を追加します。

元の投稿: gdataxmlでxmlドキュメントの読み取りと書き込み

11
bennythemink

@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 
11

同じことがわかったので、最新のXcode(4.3.x)に$(SDKROOT)/ usr/include/libxml2を追加する必要がありました。また、私が何時間も回り続けたのは、「プロジェクト」ではなく「ターゲット」を変更していたという事実です(Xcodeの新しいUIは非常に複雑であるため、簡単に見落としがちです)。プロジェクトを変更する必要があります!

7
Mike

別の解決策。ヘッダー検索パスなどですべての手順を実行し、プロジェクト設定でプロジェクトで選択した構成が正しいことを確認します。プロジェクトのビルド設定をダブルクリックすると、Distribution設定が変更されている可能性がありますが、「デバッグ」設定にヘッダー検索パスを追加しようとしています。そのため、正しい設定になっていることを確認してください。またはすべての設定を選択します

5
S.P.

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

これで、アプリケーションが再びコンパイルされます。

4
Legoless

XCode 4.3.2では、単に/ usr/include/libxml2ではなく、$(SDKROOT)/ usr/include/libxml2をヘッダー検索フィールドに入力する必要があることがわかりました。

4
fsharp

Mountain Lionでも同じ問題に直面していましたが、/usr/include/libxml2フラグ "recursive"を持つパスを含めるには、上記のすべてが役に立たない場合にこれを使用します。

3
Aqib Mumtaz

違いはわかりませんが、プロジェクトとターゲットへのインクルードパスを追加します。

3
pschang

次の手順に従ってください

  1. Libxml2の追加
    libxml2.dylibは、Macマシンの/usr/lib/libxml2.dylibにあります。

  2. 「ヘッダー検索パス」を変更する
    [プロジェクト名](左パネル)->プロジェクト->ビルド設定->すべて選択(デフォルトは基本)をクリックします。
    検索ボックスにヘッダー検索パスを入力
    ヘッダー検索パスをダブルクリック-> +-> "$(SDKROOT)/ usr/include/libxml2"

  3. -lxml2を「その他のリンカーフラグ」に追加します
    ステップ2での検索として「その他のリンカーフラグ」を検索します
    「その他のリンカーフラグ」行をクリックします。 「+」をクリックして、「-lxml2」をリストに追加します。

  4. プロジェクトの種類をARCに変更->いいえi.e自動参照カウントをいいえに変更手順2でARCを検索できます

2
mandar

また、[常にユーザーパスを検索する]を[はい]に選択します。 XCode 4.3.3では、デフォルトでNO

2
Atif

Snow LeopardとXCode 3.2にアップグレードした後、プロジェクト(LeopardのXCode 3.somethingで開発されたもの)を再度開いたときに、この問題が発生しました。興味深いことに、それはある種のビルドにしか影響しませんでした(エミュレーターのビルドはうまくいきましたが、デバイスのビルドではエラーが出ました)。そして、/ usr/includeにlibxml2があり、実際にはlibxml/tree.hが含まれています。

魔法の「Clean」でも機能しませんでした、but「XCode」メニューの下の「Empty Caches ...」(Appleの間)ロゴとファイル)トリックを行いました(以前のバージョンではそのメニューはありましたか?)。私の理由を打ち負かしましたが、きれいにした後、libxml/tree.hに関する苦情はもうありませんでした

2
chesterbr

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に追加しなかった場合、プロジェクトビルドしなかった)。

2
Petr

このビジュアルチュートリアル が便利だと思いました。

2
Frank Fu

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でも機能します!ありがとうございました!

1
Denko

@Aqib Mumtaz-上記の「Xcode 4.3/5/6にlibxml2を追加する」と題されたParrisのメモの指示に従って動作しました。フレームワーク検索パスを使用するステップは機能せず、コンパイラーは文句を言います。とにかくそのフェラに大きな称賛を!

Xcode 6.2b3を使用しています

使用しているXcodeのバージョンに関係なく、バグがあります。コンパイルエラーが本当であると常に仮定しないでください。ヘッダー検索パスをたどらず、明確にリストされているものが見つからない場合が多くあります。さらに悪いことに、発生するエラーはさまざまな方向を指す傾向があるため、気を散らすことに多くの時間を浪費します。とは言うものの...

正確にこれを開始して、赤ちゃんの手順を推奨します...:

  1. 「ベンチテスト」という単一ウィンドウのMac OS X Cocoaプロジェクトを作成します。
  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をプロジェクトアセットの下部にドラッグします。これにより、「Build Phases」->「Link Binary with Libraries」に簡単な方法で追加されます
  6. プロジェクトアセット列の左上にある「ベンチテスト」プロジェクトアイコンをクリックします。
  7. 「ビルド設定」の下の「その他のリンカーフラグ」を検索します
  8. 「Bench Test」プロジェクトアイコン列の下の「Other Linker Flags」に「-lxml2」(sans「」)を追加します
  9. 「ビルド設定」の下の「ヘッダー検索」を検索します
  10. 「Bench Test」プロジェクトアイコン列の下の「Header Search Paths」に「$(SDKROOT)/ usr/include/libxml2」(sans「」)を追加します
  11. 「Bench Test」プロジェクトアイコン列の下の「User Header Search Paths」に「$(SDKROOT)/ usr/include/libxml2」(sans「」)を追加します

ノート:

  • 「ヘッダー検索パス」と「ユーザーヘッダー検索パス」の両方にその検索パスを追加するまで、私は機能しませんでした。
  • Finderでlibxml2.2.dylibにアクセスするには、Xcodeアイコンを右クリックして、[パッケージの連絡先を表示]を選択する必要があります(編集:なんてハックなのか、すべてのゴミをアプリに詰め込む)
  • リンクされた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アプリを言うと、「MDWS」または「VIA」と呼ばれる、SOAPベースの医療用インターフェース記録システム...私に連絡してください

1
William Cerniuk

Libxml2.dylibをframeworksフォルダーの下に置かないでください。ルートのすぐ下のルートの下に置きます(左上の青いアイコン)

次に、プロジェクト(上左の青いアイコン)をクリックし、ビルド設定に移動して、検索ボックスに「ヘッダー検索パス」と入力し、この「$(SDKROOT)/ usr/include/libxml2」を追加します

このコードは私の問題を解決し、あなたがこれを修正するのに役立つことを願っています

1
Ranjan

私は間違って追加したかったのですが、アークをサポートしていないという問題に気づいたので、ここでサポートを確認してください、ライフセーバー-> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/

0
Bhimbim

Xcode 8.0 +単体テストプロジェクトで3つのステップで解決しました

1)ビルドフェーズにlibxmlファイルを追加しました。これに従ってください link

2)その他のリンカーフラグ-ObjCとして追加しました(プロジェクトおよびテストプロジェクトターゲットの両方)

3)Header Search Path"${SDKROOT}/usr/include/libxml2"として設定します(両側の二重引用符を忘れないでください)(プロジェクトターゲットとテストプロジェクトターゲットの両方で)

それらの1つが問題を解決します。そうでない場合は、上記の3つすべてを適用する必要があります。

0
Zumry Mohamed