自分のアプリに広告主を入れた後にエラーが発生しました。昨日、アプリは問題なく動作しましたが、今日はもう動作しませんでした..エラーは次のとおりです。
ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)
それを修正するには?ありがとう!
ライブラリの参照を削除して、再度参照を追加することもあります。
Google Mobile Ads SDKや他のライブラリを最初から追加する以外に、ライブラリ検索パスをチェックすることをお勧めします。ターゲットをコピーまたは複製するときに、Xcodeは「\」で二重引用符をエスケープする必要があると判断することがあります。
パスの前に複数の「\」を付けることで、エラーを再現することができました。
私は同様の「図書館が見つかりません」という問題を抱えていました。ただし、.xcodeproj
ファイルの代わりに.xcworkspace
ファイルを誤って使用していたためです。
ターゲットを選択し、そのライブラリの"Build Phases"
remove "Link Binary With Libraries"
ファイルの".a"
に移動します。きれいにして造ってください。
次のようにエラーがCocoapodsに関連している場合:
library not found for -lPod-...
その他のリンカフラグを確認して、そこから削除する必要があります。
追加情報: cocoapodを使用する古いプロジェクトがある場合。そして最近、あなたは use_frameworks!をあなたのpodfileに追加する必要がありました。 cocoapodはあなたのOther Linker Flagsにライブラリを追加しなくなり、継承されます。したがって、use_frameworksを使用する前に、それらが追加された他のリンカフラグからそれらを手動で削除する必要があるかもしれません!
エラーが以下のような場合
ld:-lpodsのライブラリが見つかりません
プロジェクトのFrameworkグループの中に、何らかの理由で( "不足しているファイル"のような)赤い "libPods.a"ファイルが作成されたことがわかりました。単にそのファイルを削除しただけで、すべてうまくいきました。
編集:他の解決策
私がすでに同じ質問で答えたもう一つの解決策はこのリンクにある
これは、ワークスペースではなくプロジェクトファイルを開いた場合にも起こります。私は一日のように私はこのように無駄にしました。
gotoビルドフェーズ - >ライブラリとバイナリをリンクし、ライブラリがプロジェクトフォルダで利用できないためエラーを示すライブラリを削除
答えが遅れていますが、これが私が試したことのリストです。
これは、cocoapodを使用していて、デフォルトの.xcworkspace
ファイルの代わりに.xcodeproj
ファイルを使用していない場合に起こります。
簡単な解決法私がこの問題を解決する方法は次のとおりです。
platforms/ios
に移動しますpod install
を実行します。それでおしまい。これで足りないライブラリがインストールされるはずです。
私の場合、命名の問題がありました。私のライブラリはios-admob-mm-adapter.a
と呼ばれていました、しかしXcodeは名前が接頭辞libで始まるべきであると予想しました。私のライブラリの名前をlibios-admob-mm-adapter.a
に変更して問題を解決しました。
私はCocoapodを使用しています、そしてそれは私のターゲットのビルド設定で他のリンカフラグオプションでライブラリをリンクします。フラグは-l"ios-admob-mm-adapter"
のように見えます
それが他の誰かに役立つことを願っています
私がこの問題を修正したのは次のとおりです。
platforms/ios
に移動しますpod install
を実行します。それでおしまい。
私のプロジェクトで 'pod update'を実行すると '-lSTPopupのライブラリが見つかりません'というエラーが表示され、問題が解決しました。
備考Trevor Panhorstの答え:
「ポッドファイルで明示的なバージョンを使用していない場合は、ポッドの更新に注意してください。」
私にとっては、この問題は、IOS用の材料ライブラリをインストールしたために発生します。この問題を解決するために
1:ターゲットアプリのビルド設定に移動します。
2:他のリンカフラグを検索する
3:他のリンカフラグを開き、エラーに記載されているライブラリを確認します。
4:そのフラグを外します。
5:きれいにして造る。
これで問題が解決すると思います。
私はこれが少し古いことを知っています、しかし私はちょうど同様の問題にぶつかり、 'pod update'を実行することは私のためにこれを直しました。私のライブラリのエラーはAFNetworkingにあった...
ポッドファイルで明示的なバージョンを使用していない場合は、ポッドの更新を慎重に行ってください。
Static Linker
で表されるLibrary
のコンパイル時エラーです
ld: library not found for -l<Library_name>
Library not found for
へのライブラリパスを含めていない場合、エラーLibrary Search Paths
を取得できます。
この問題が発生しているのは、Static Linker
がライブラリの場所を見つけられないためです。リンクするXcodeのライブラリ検索パスに適切なディレクトリを追加して、Xcodeにそれらの場所を伝えます。
Build Settings -> Search Paths -> Library Search Paths
ソースは here です
@ rauroraの答えは私を正しい方向に向けていました。私は自分の "watchkitapp Extension/lib"パスにライブラリを含めていました。この場合、ライブラリ検索パスは「\」でエスケープする必要がありましたが、リンカはこれを理解していないようでした。この問題を解決するには、libパスを1つ上のレベルに移動して、名前にスペースが含まれるディレクトリに移動しないようにしました。
ld: library not found for -{LIBRARY_NAME}
の場合、ライブラリファイルが存在しないために起こりました。
アプリケーションターゲットの「ビルドフェーズ」の「ライブラリ検索パス」タブでライブラリパスを確認します。
ライブラリファイルのパスは実際のパスに一致している必要があります。たとえば、プロジェクトのルートにあるファイルが$(PROJECT_DIR)
のようにパスを設定する必要がある場合
このエラーは非常に奇妙です。
-ldAfnetworkingでこのエラーが発生しました。プロジェクトを他のパスにコピーして作業しています。
私は自分のビルド設定をRelease
からProduction
にリネームしようとしましたが、どうやらココアポッドはそれを好まないのです。私はそれをRelease
に改名しました。
ポッドファイル 'pod update'を更新するだけで、普通に動作します。