'ld:警告:オプションのディレクトリが見つかりません'


524

Xcode 4アプリをビルドすると、次の警告が表示されます。

ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../../../Downloads/Google Analytics SDK/Library'
ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../Google Analytics SDK/Library'

しかし、アプリにGoogleアナリティクスがありません。すべて削除しました。どうすればエラーを削除できますか?アプリをアーカイブするとエラーが発生します:

clang: error: no such file or directory: 'armv6'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

多くのことを試しましたが、.IPAファイルを作成しようとしても、このエラーが発生します


10
非常によく似た警告がありますが、-Fではなくが付いてい-Lますdirectory not found for option '-F/...。違いについては、以下の@macayerの回答を参照してください。
pkamb 2014年

1
注:スペースを含むディレクトリは引用符で囲んでください。たとえば、$(PROJECT_DIR)/my folder`" $(PROJECT_DIR)/ my folder "
Jacksonkr

クラスに適切なターゲットメンバーシップが指定されていなかったときに、この問題に遭遇しました。
トムハワード

1
@Jacksonそれは私のためにそれを修正しました。-F警告が表示されましたが、ビルド設定の「フレームワーク検索パス」で指示されたとおりに引用して修正しました。おかげで
マーク・

定期的なバックアップがベストプラクティスです。
Gajendra K Chauhan 2016年

回答:


877

これを行う必要があります:

  1. プロジェクト(ターゲット)をクリックします
  2. ビルド設定をクリックします
    • エラーに-Lフラグが含まれている場合は、ライブラリ検索パスの値を削除します
    • エラーに-Fフラグが含まれている場合は、フレームワーク検索パスの値を削除します

そして、2番目のエラーに関しては、申し訳ありませんが、そのエラーを解決することはできません。他の誰かがあなたを助けることを願っています。


5
これは私のプロジェクトを壊しましたが、私はGoogle Analytics #importsをコメントアウトしてSDKを削除し、xcodeを終了し、#importsを再度追加してコメントを解除しましたが、再び機能しました:)
絵文字2013年

1
省略した手順はありますか?私はこれをしました、そして今、Xcodeは数秒前に働いていた他のたくさんのファイルを見つけることができません。助けて!
ユーザー

9
そのライブラリパスが実際に必要な場合は、削除に注意してください。エラーで指定されたパスが存在することを確認してください。ディスク上のライブラリの場所が移動された可能性があります。
AWrightIV 2013

3
ライブラリ検索パスを削除した後、エラーが発生しました:ld: library not found for -lMoboSDK clang: error: linker command failed with exit code 1 (use -v to see invocation)(lMoboSDKは静的ライブラリです)
lee

2
エラーをクリアするには、「AppTests」TARGETの「フレームワーク検索パス」の下にあるパスを削除する必要がありました。
AT3D、2015年

754

人々が混乱しているように見える2つのエラーがあります。

「オプション ' -L / ...のディレクトリが見つかりません」というエラーの場合、それはライブラリエラーであることを意味します。

  • プロジェクト(ターゲット)をクリックします
  • ビルド設定をクリックします
  • [ ライブラリ検索パス]でパスを削除します

「オプション ' -F / ...のディレクトリが見つかりません」の場合、それはフレームワークエラーであることを意味します。

  • プロジェクト(ターゲット)をクリックします
  • ビルド設定をクリックします
  • フレームワーク検索パスの下で、パスを削除します

これは、参照ファイルを移動すると発生する可能性があります。


3
すべての回答があなたの回答ほど簡潔で役立つとは限らないのはなぜですか?ありがとうございました。私は副次的な質問があります:不可解な-L / -Fエラーについてどこで学びますか?私はリンク/コンパイル/ビルドのゲーム全体に不慣れです。Xcodeの組み込みドキュメントは、正確に書き直すものではありません。私は、これらのほとんどがコマンドラインからアクセスできると想定しています。私はこの仮定で正しいですか?これらすべてのものからどこから始めればよいのかさえわからなかっただけです。私はWeb開発に慣れているので、ご想像のとおり、その領域で情報を見つけるのは少し簡単です。
ベン株

検索パスを削除すると、FacebookSDKが見つからないことが再度表示されます。-Fエラーです。Xcode 6.1を使用しています
りんくう

私のために働いた。プロジェクトとテストモジュールの両方のターゲットでフレームワーク検索パスを削除する必要がありました(iOS8.3からiOS9へのプロジェクトのアップグレード時に)。
ObjectiveTC

1
アップルに来て、「それはうまくいく」とどうなったのか...これは開発者にも当てはまるはずです。少なくとも、これらの不可解なメッセージの代わりに、この種の問題を解決する方法に関する提案を提供してください。ちょっと、マイクロソフトを思い出します、ええ。
John Contarino、2015

2
「-Lはライブラリ検索パス」および「-Fはフレームワーク検索パス」ガイドラインに感謝します。これは私にとって完璧に機能しました。
swiftBoy 2016


60

私は参照を削除する必要がありました:

  • 目標
  • ビルド設定
  • フレームワーク検索パス

ここに画像の説明を入力してください

その後、ビルドが壊れました(予期されていました)。したがって、私はフレームワーク(FB SDK)を削除し、再度追加して出来上がりました。エラーや警告はありません。:)


19

私はココアポッドを使用しているので、Xcodeを終了して実行しました

pod install

再び、プロジェクトを再開しました。これですべてが修正されました!


1
あなたの提案が実際に同様の問題の解決策になる可能性があるのになぜあなたが反対票を投じられているのかわからない!具体的には、プロジェクトに新しいビルド構成を追加した後に同様のエラーメッセージが発生した場合の解決策です。新しいビルド構成を追加すると、自動的に既存の構成が複製さpod installれるため、「構成ファイルに基づく」列の値を調整するために実行する必要があります。
Cellane 2017年

1
また、カカオポッドはワークスペースを生成します。プロジェクトファイルではなく、必ずそれを開いてください。ポッドインストール+ワークスペースファイルを開くと問題が解決しました。
Michael Krebs

ionicでは、platforms / iosフォルダー内でポッドインストールを実行したときにこれが機能します
Bas van Dijk

18

私にとっての問題は、エスケープ「\」文字がないことでした。

ライブラリの検索パスで、検索パスが数行に分割されました。便利なことに、彼らは私の道のスペースで壊れていました。エスケープ「\」を追加すると、修正されました。

$(PROJECT_DIR)/My\ Project\ Name/My\ Directory

これは完璧な答えです!2014年4月テスト済み
Van Du Tran

1
これが2015年2月6日のXcode 6でまだ壊れているのは残念です。パスのスペースは手動でエスケープする必要はありません。
StilesCrisis 2015

上記で受け入れられ、投票数が多かった回答は私にはうまくいきませんでしたが、これはうまくいきました。これがこの問題であったという私のヒントは、Xcodeが2 -Lエラーをスローし、各エラーが完全なパスのフラグメントであり、スペースで壊れていたことでした。2015年には、スペースの脱出について心配する必要はないことに同意しました。これは、バックグラウンドで処理する必要があります。
John Contarino

ええ、これはXcodeの長年の問題で、システムによって検索パスが自動的に追加されたときに発生します(つまり、ライブラリを「埋め込みバイナリ」にドラッグしたためです-何らかの理由で、スペースが自動的にエスケープされず、その後解釈されますそれらを別々のファイルパスとして
Ash

13

私が削除しなければならない参照を見つけました:

  • 目標
  • ビルド設定
  • ヘッダー検索パス

33
Googleを使用して「ld:warning:Directory not found for option」の解決策を見つけ、自分の答えを解決策として見つける
Jasper

13

私の場合、問題は、不完全で死んだ古いリンクまたは同じタイプの複数のフレームワークを含むフレームワーク検索パスでした。それらを削除すると、プロジェクトは問題なくコンパイルされます。

ビルドを実行してください->クリーン

ここに画像の説明を入力してください


10

Xcodeのクラッシュ後に同じ問題(最初の問題)に遭遇し、提案された解決策がどれも機能しませんでした。私が行った警告を抑制するには:

•スキームを管理する...

•現在のスキームを削除した

•スキームを自動クレートする


これらすべてのソリューションを実行するには、この元の質問の作成者にメモを投稿してもらう必要があります。リスト。最初のソリューション、2番目のソリューション、次のソリューションを試してください...これは、古いプロジェクトの移行のために行ったものであり、他のソリューションは合理的なソリューションです。もし全部試さなかったら、これを見つけられなかったでしょう...先に進んで混乱して泳いでいました。フランチェスコ!
マシューファーガソン

8

これは私のために働いたものです:

  1. プロジェクトをクリックします
  2. ビルド設定をクリックします
  3. 「フレームワーク検索パス」を検索します
  4. パスをクリアして、「$(inherited)」と入力します

6

私は同じ問題であると思われるものにも気づきました(今回はXCode 5.0.2で)。私の場合、XCodeはすでに「ビルド設定」にある引用符をエスケープすることに決めました。だから例えば:

"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1"

なりました

\"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1\"

ビルドが失敗しました...

引用のエスケープを削除すると、すべてが再び正常に機能しました。さらに、必要な場合を除き、引用符を完全に削除することをお勧めします。


1
これのための巨大な+1。。ディレクトリ-Lと-Fオプションの両方のために、 『エラーが見つかりません」の原因だった』上のものエスケープ
ウィル

1
非常に便利なヒント...私のプロジェクトでは、xcode 5.0.2はパスの最初、中間、最後で引用符をエスケープしました...いくつかのフレームワークのパスが奇妙な方法で重複していました...エスケープを削除しました。フレームワークパス」は、プロジェクトが使用していて警告を取り除いたものです。パスを修正した後でフレームワークを削除/再度追加することも必要
でした

6

Podfileをプロジェクトに追加してpod installを実行した後にこれが発生した場合は、プロジェクトフォルダーに移動すると、「{ProjectName} .xcworkspace」で作成された新しいファイルが表示されます-そのファイルをxcodeで開きます

インストールされているポッドは、このファイルでプロジェクトに適切にリンクされます


ワークスペースではなくプロジェクトファイルを開いた可能性があります。
Jason

3

この段階的なソリューションに従ってください:

  1. プロジェクト(ターゲット)をクリックします。
  2. ビルド設定をクリックします。
  3. [ライブラリ検索パス]で、パスを削除します。
  4. ./**ライブラリ検索パスを追加します。

3

補足回答

すべての回答は、ターゲットからフレームワークまたはライブラリの検索パスを削除するように言っています。私には2つの問題がありました。

  • まず、単体テストのターゲットではなく、メインプロジェクトのターゲットを見ていました。
  • 次に、フレームワークの検索パスを削除する方法がわかりませんでした。クリックして編集モードにし、文字列を削除するだけであることがわかりました。

私はこれを試したいのですが、アプリが壊れてしまうのではないかと心配しています。これを実行した後、すべてが正常に機能しますか?
Supertecnoboff 2016年

@Supertecnoboff動作しないことが心配な場合は、削除する前に文字列を保存してください。いつでも貼り付けることができます。私のアプリは既に壊れているので、何かがうまくいくまで何度も試してみる必要がありました。上記の私の答えは私のために働いたものです。
Suragch、2016年

1

私にとって問題は、適切なフレームワークが含まれていないことでした(別のプロジェクトからアドオンをコピーするときに、フレームワークファイルもコピーしませんでした)。


1

このタイプのエラーの要点は、ビルド設定に移動し、ライブラリ検索パス、フレームワーク検索パス、場合によってはヘッダー検索パスなどの各検索パスセクションを調べ、該当しないパスをすべてクリアすることです。アプリを見つけるのに苦労しています。それらを削除し、良い先生を続けます


1

不足しているフレームワークを確認してから、

=>ビルドフェーズ=>バイナリをライブラリにリンクする

ライブラリを削除してから追加し直す


1

新しいスキームを作成し、それを再構築に使用したときに消えてしまった同様の問題がありましたか???


1

私にとっては、テストも有効にしています。テストの検索パスも正しく入力されていませんでした。

通常のコードとテストコードの両方のフレームワーク検索パスをクリアします。


1

検索パス(フレームワークとライブラリ)に入力されたカスタムディレクトリのため、プロジェクトはポッドのディレクトリをオーバーライドします。それを見つけることができません。

この問題を解決するには、すべてのカスタムディレクトリを

検索パス->ライブラリパスとフレームワークパス

$ {inherited}のみを参照してください。

これがお役に立てば幸いです。それは私のために働いた。


1

ここに画像の説明を入力してください

$ (継承)-Objc -lcrypto-プロジェクトのlsslを追加->ビルド設定->検索パス->ライブラリ検索パス


上記の解決策は私にとってはうまくいきます。それがうまくいかない場合は、スクリーンショットを共有してください。
Bandish Kumar

1

いくつかの依存関係があるポッドのインストール後にこれが発生する場合、問題はXcodeで古いバージョンのapp(.xcworkspace)を使用していることである可能性があります。

ポッドのインストール後、これは表示される出力です。

ポッドインストールの出力。

ポッドインストールの出力

それを正確に行い、現在のXcodeウィンドウを閉じて、新しい.xcworkspaceを開きます。

新しいxcworkspaceを開く]

新しいxcworkspaceを開く


0

このオプションを確認してください:

ビルド設定->フレームワーク検索パス-> {プロジェクトのパスを入力}


0

[ライブラリ検索パス-フレームワーク検索パス-ヘッダー検索パス]をすべて調べました。しかし、削除するパスがないため、Xcodeバンドルに移動して、アラートが不満を示していたパスの場所に空のディレクトリを作成することで、このアラートを消すことができました。


0

ターゲットで選択されている「libFlurry.a」が1だけであることを確認してください

私のために働いた。

ここに画像の説明を入力してください


0

MainAppsの新しい構成に変更する場合は、ワークスペースでポッドプロジェクトに同じ構成を作成することを忘れないでください。

例えば、

私の場合、この問題を解決するには、MainAppのReleaseOfficial構成を作成するときに、PodプロジェクトのReleaseOfficial構成も作成する必要がありました。


0

新しいポッドをインストールしてからこのエラーが発生した場合は、xcodeを終了して、もう一度開き、プロジェクトをビルドします。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.