6

こんにちは皆さん、プロジェクトをビルドしようとするたびにこのエラーが発生する Xcode プロジェクトがあります。

ld: アーキテクチャ armv7 Xcode プロジェクトの xx シンボルが重複しています。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました...

私はググってみましたが、ほとんどのソリューションでは、プロジェクトのビルドフェーズ - >コンパイルリソースセクションで重複ファイルを削除するか、一部のファイルで import .m を .h に変更するように言われています。問題は、コンパイルされたリソースのリストがソートされておらず、プロジェクトに多くのファイルがあるため、どのファイルを修正すればよいかさえわからないことです。これをきれいにする方法についてのアドバイスはありますか?

4

3 に答える 3

4

プロジェクトには、2 回インポートされた可能性のある特定のファイルがあります。エラー ログを分析してみてください。「YourViewCOntroller.O」としてエラーが発生しているファイルを参照している必要があります。プロジェクト ナビゲーターで「YourViewCOntroller」を使用している場合、これらのファイルを Xcode プロジェクトから削除してから、再度ビルドする必要があります。

于 2014-08-04T17:42:02.657 に答える
0

私のようにCocoapodsを使用している場合、pod ファイルによって重複が自動的に生成されるため、他の回答が役に立たないことに気付くかもしれません。

私にとってうまくいったのは、重複するシンボルのリストを調べることでした。たとえば、次のようになります。

重複するシンボル _OBJC_METACLASS_$_AFImageCache :

___/Build/Products/Debug-iphoneos/libPods-AFNetworking.a(UIImageView+AFNetworking.o)

___/Build/Products/Debug-iphoneos/libAFNetworking.a(UIImageView+AFNetworking.o)

ld: アーキテクチャ armv7 の 214 個の重複シンボル clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)

次に、プロジェクト/ターゲットの [ビルド設定] -> [その他のリンカー フラグ]に移動し、重複するポッド (私の場合は AFNetworking) への参照を削除します。

クリーンアップして再度ビルドすると、動作するはずです。

--

私が知る限り、これは、他のポッドの 1 つが AFNetworking を参照し、重複につながるために発生している可能性があります。

于 2016-01-11T19:15:01.037 に答える