73

iPhone シミュレーター経由でアプリを実行すると、突然このエラーが発生します。

clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください):

ld: .../Algebra5-anwcuftojtxtgkfootneeeqhwztj/Build/Intermediates/Algebra5.build/Debug-iphonesimulator/Algebra5.build/Objects-normal/i386/ExercisesViewController.o および .../Algebra5-anwcuftojtxtgkfootneeeqhwztj/ でシンボル _OBJC_CLASS_$_Algebra5FirstViewController を複製します。 Build/Intermediates/Algebra5.build/Debug-iphonesimulator/PSLE Algebra5.build/Objects-normal/i386/PSLE_Algebra5FirstViewController.o アーキテクチャ i386 用

それはすべてについて何ですか?

4

28 に答える 28

67

Algebra5FirstViewControllerクラスが複数回コンパイルされているようです。

.mと.mmがXcodeのプロジェクトソースに1回だけ含まれていることを確認できますか?コンパイルログ(右側の最後のアイコン、ブレークポイントアイコンの横)をチェックしてこれを確認し、コンパイルが1回だけであることを確認することもできます。

また、このクラスがリンク先のライブラリの一部であり、同じ名前のクラスがある場合、同じエラーが発生する可能性があります。

最後に、古いオブジェクトファイルがまだ存在し、コンパイルされたファイルにジャンクが含まれている場合に備えて、クリーンアップと再構築を試すことができます。念のため...

編集

また、ExercisesViewControllerのファイルで2番目の参照が行われていることにも注意してください。たぶん、このファイルに何かがあります。.hの代わりにAlgebra5FirstViewControllerファイルを#インポートしたか、ExercisesViewControllerに@implementation(ExercisesViewController)の代わりに@implementation(Algebra5FirstViewController)があるか、このファイルにCleanaRebuildでクリーンアップされるジャンクがありました。

于 2012-05-03T16:13:49.463 に答える
51

これは、「ビルドフェーズ」のターゲットの「コンパイルソース」セクションで同じ.mファイルが複数回参照されている場合に発生する可能性があります。重複するエントリを削除すると、問題がないはずです。

于 2012-05-03T16:14:01.277 に答える
30

const * NSString実装ファイル (正しく) ではなく、ヘッダー ファイル (間違って) でa を宣言することによっても、この問題が発生しました。

于 2012-07-11T19:37:48.533 に答える
10

私は同じ問題を抱えていました。解決しました!

プロジェクトにファイルをインポートした場合は、同じ .m (メイン) ファイルが [ターゲット (プロジェクト名)] -> [ビルド フェーズ] -> [コンパイル ソース] に存在するかどうかを確認します。

ファイルが存在しない場合は、表示されている (+) [追加] ボタンを使用してファイルを含めます。また、重複ファイルが存在する場合は (存在する場合)、削除します。

cmd+shift+k を押してプロジェクトを消去します。新しいビルドでは、このエラーは表示されません。

ここに画像の説明を入力

于 2014-02-05T14:21:33.867 に答える
5

@paiegoが説明したように、別のプロジェクトからファイルを追加するときに同様のエラーが発生しました。私のエラーは、「ターゲットに追加」をチェックしなかったことです。上記で説明したように、参照を削除してファイルを追加し直しましたが、今回は「ターゲットに追加」にチェックを入れました。

于 2012-10-16T06:34:26.073 に答える
4

同様のエラーが発生していましたが、この方法で解決しました。

「Pods」プロジェクトとアプリのターゲットに対して Build Active Architecture Only を NO に設定してみてください

于 2015-12-14T11:56:44.427 に答える
3

あるケースでは、新しいクラスの .h と .m をプロジェクトにドラッグすると、このエラーが発生しました。私が見つけた唯一の解決策は、これらのファイルへの参照を削除してから、プロジェクト メニューから再度追加することでした。

于 2012-08-25T23:06:40.747 に答える
1

一度私が得た

18 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1

私にとってこれは、スイッチのケースで「const NSInteger」を使用したためです。

私がしたことは、const NSInteger を enum に変更し、参照を enum 値に置き換えることです。

これでエラーが修正されました。

于 2014-04-16T05:53:01.320 に答える
1

[XCODE 7.1 アップデート]

機能した最初のオプション:

Deployment Targetを7.1 から 8.1に変更したところ、エラーはなくなりました。

それが誰かを助けることを願っています。

更新 (2 日目) : 2 日間で 2 回目です。

2 日目に、この厄介なエラーに加えて、さらに多くのエラーが発生し始めました。問題は、Xcode が認識しないファイルの競合でした。以下のリンクをヘルプとして使用しました。

  1. 「_OBJC_CLASS_$_viewsampleViewController」、次から参照:

  2. 「ld: 警告: オプションのディレクトリが見つかりません」</a>

そして最終的に:

  1. 「_OBJC_CLASS_$_viewsampleViewController」、次から参照:

FrameWork Search Paths+ Compile Resources+ + ポッドからすべてを削除してから、Run Script Phasesそれらを再インストールして、最終的に成功を収めていました。

私のサイズの問題 (2 日目) は、競合するファイルまたは Xcode が認識しなかったファイルに関する問題でした。

しかし、最終的には、すべてを削除し(上記およびリンクに記載)、何度もクリーニングし、ポッド/フレームワーク/実行スクリプト フェーズを再インストールすることが役に立ちました。

これが誰かに役立つことを本当に願っています。

于 2015-11-27T14:10:17.443 に答える
1

このエラーに遭遇し、iOS 9 に固有であると思われる別のソリューションを使用しなければならなかったため、これに対する新しい回答を投稿しています。

ビルド設定でビットコードを有効にするを明示的に無効にする必要がありました。これは、更新で自動的に有効になります。

参照された回答: iOS 9 の新しい警告

于 2015-10-14T00:19:19.137 に答える
1

mの場合、ファイルをプロジェクトにドラッグした後、ファイルが「プロジェクトにファイルを追加」をクリックしたようです。どちらも間違ったアプローチでした。他の .h および .m ファイルを格納しているプロジェクト フォルダー (ファインダー内) にドラッグするだけです。

于 2014-01-13T22:52:43.583 に答える
1

これは、[コンパイル ソース] セクションで一部のファイルが欠落しているか、一部のファイルで重複したエントリが見つかった場合に発生します。私の場合、2 つのファイルに重複したエントリがありました。各ファイルのエントリを 1 つ削除して、問題を解決しました。お役に立てれば。

于 2014-06-18T06:32:24.553 に答える
1

「linker command failed with exit code 1 (use -v to see invocation)」- iPhone で phonegap アプリケーションを実行しているときに、このエラーが発生しました。Build Active Architecture Only を Yes に変更したところ、問題なく動作しました。

于 2013-03-28T09:10:14.897 に答える
0

必要なフレームワークを追加せずにサブクラスを実装しているときに、このエラーが発生しました (この例では、MediaPlayer フレームワークのない MPMoviePlayerController)。

于 2014-08-01T00:49:37.897 に答える
0

.h ファイルと .m ファイルの両方を同じクラスに (誤って) インポートすることで、これを 1 回受け取りました。

于 2014-04-28T20:55:14.483 に答える
0

「Link Binary With Libraries」には、古いプロジェクト名のポッド ライブラリがありました。削除後修正。

  1. リスト項目
  2. 計画
  3. ビルド フェーズ
  4. バイナリをライブラリにリンクする
  5. 非推奨のライブラリを削除します。
于 2017-05-08T06:43:39.147 に答える
-1

私の場合、Other Linker Flags のライブラリへの参照がありました。それを削除すると、エラーが解消されました。

ここに画像の説明を入力

ここに画像の説明を入力

于 2016-10-15T15:43:23.977 に答える
-5

同じエラーが発生しました。使用しなくなったオーディオ フレーム作品をインポートしました。私はそれを削除し(削除しないでください!)、正常にビルドされました。

于 2013-01-23T11:32:36.763 に答える