これらのエラーが発生します:
ld: warning: directory not found for option '-L"/pathToMyApp/MyApp/Shared/Libraries/ADMS_AppLibrary"'
ld: warning: directory not found for option '-L"/pathToMyApp/MyApp/Shared/Libraries/TestFlightSDK1.1"'
ld: warning: directory not found for option '-L"/pathToMyApp/MyApp/Shared/Libraries/Medialets"'
ld: library not found for -lTestFlight
clang: error: linker command failed with exit code 1 (use -v to see invocation)
これらのディレクトリは、実際には上記のパスに存在します。
問題は、正常にコンパイルするために使用されるアプリです。 Medialetsライブラリの新しいバージョンをプロジェクトに追加するだけで、これらのエラーが発生します。
人々が混乱しているように見える2つのエラーがあります
「オプション '-L/...のディレクトリが見つかりません」エラーの場合は、ライブラリエラーであるため、次のことを試してください。
プロジェクト(ターゲット)をクリックします。[ライブラリ検索パス]の下の[ビルド設定]をクリックし、パスを削除します。「オプション '-F/...のディレクトリが見つかりません」の場合は、フレームワークエラーであるため、次のことを試してください。
プロジェクト(ターゲット)をクリックします。[フレームワークの検索パス]の下の[ビルド設定]をクリックして、パスを削除します。
プロジェクトに新しいライブラリを追加したときにも同じ問題が発生しました。
プロジェクトに新しいライブラリディレクトリを追加するときに、Xcode 5が「ライブラリ検索パス」へのパスを自動的に追加すると、リンカーエラーが発生するようです。
パスを手動で編集すると、リンカーエラーが消えました。 (私は基本的にパスを変更しませんでした。$(PROJECT_DIR)/ path/to/libraryや "$(SRCROOT)/ path/to/library"などのいくつかの異なる形式を試しました。元に戻した後でも機能しました。フォーマット。)
Xcodeのバグだと思います。 Xcode 5.1(5B130a)を使用しています。
「-L」の問題については、
Cmake(私の場合は3.3.2)を使用していて、xcodeジェネレーターを使用している場合、指定したリンクディレクトリごとに複数のエントリが生成されます。
link_directories ("${PROJECT_SOURCE_DIR}/SDKs/thelib/lib")
これを行うcmakeソースコードcmGlobalXCodeGenerator :: AddDependAndLinkInformation(...)を参照してください。
{ ...
if(this->XcodeVersion > 15)
{
// Now add the same one but append
// $(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) to it:
linkDirs += " ";
linkDirs += this->XCodeEscapePath((*libDir + "/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)").c_str());
}
linkDirs += " ";
linkDirs += this->XCodeEscapePath(libDir->c_str());
}
これにより、XCodeはLib SearchPathにこれらのエントリを持ちます
/Users/myuser/thelib/lib/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
/Users/myuser/thelib/lib
そのため、この警告を取り除くのは少し難しくなります。ファイル構造によっては、そのうちの1つが間違っている可能性があります。手動で削除しても、次にプロジェクトが再生成されたときに元に戻ります。
回避策の1つは、文句を言うディレクトリ用に空のディレクトリを作成することです...
「-Wl」を使用してリンカーに「いくつかの引数を渡す」ことも可能ですが、これまでのところ、その特定の警告を消すために何を渡すかがわかりませんでした。
ld:警告:オプション '-L "----のディレクトリが見つかりませんライブラリエラーです
選択プロジェクトビルド設定タブに移動し、ライブラリ検索パスの下で、パスをこの文字列に置き換えます$(SRCROOT)
「ビルドフェーズ」の「LinkWithBinary With Libraries」セクションからライブラリを削除するだけでは、少なくともXcode6の問題は解決されないようです。
1)プロジェクトナビゲーターに移動し、「Frameworks」フォルダーを見つけます
2)あなたのライブラリはおそらくすでにそこにあるので、右クリックして「削除」するだけです
3)「参照の削除」を選択します
4)すべてのファイルがあるリポジトリまたはプロジェクトフォルダに移動し、「Frameworks」フォルダにドラッグします
5)クリーンアップして再構築すると、エラーがなくなるはずです