2013-02-20 12 views
16

Xcode 4.6にiOSアプリケーションがあります。最近iPhone 6.1シミュレータでビルドして実行しようとしたときに、「Mach-O Linker Error」が発生しました。それは言って続けた:Xcode 4.6のMach-O Linkerエラー

LD:i386アーキテクチャ 打ち鳴らすための17個の重複シンボル:エラー:リンカコマンドは終了コード1(呼び出しを参照するには、-v使用)

で失敗しました誰もがこの問題を解決する方法を知っていますか?

ありがとうございます!

+0

http://stackoverflow.com/questions/9169944/>ビットコードを有効にしません重複シンボルエラー –

+0

こんにちはflexaddicted、 私は謝罪しますが、私はそのリンクの解決策が混乱しています。私は、輸入に関する声明の最初の解決策を見て、私は確認したが、何も間違っていなかった。私が見なければならない何か他にありますか? ありがとうございます。 – user1253582

+0

いくつかの変数がヘッダーファイルに定義されていて、数回含まれている可能性があります。重複しているシンボルについての詳しい情報を教えてください。 – joerick

答えて

23

"Build Phases" - > "Compile Sources"に移動し、クラスの重複を探します。

+2

こんにちはedzio27、私は "ソースのコンパイル"セクションに行き、重複するクラスを見つけることができませんでした。私は何度かチェックして何も見つけられなかったので、間違いなく重複クラスですか? ありがとうございます。 – user1253582

0

私はあなたに解決策を与えることはできませんが、同じことがxCode 4.6でも同じことが起こったので私は答えを共有します。私はCクラスのヘッダーと実装ファイルを追加し、mainにインクルードしました。私はその後、その新しいCクラスのヘッダと実装を削除することに決めました。同じ名前と関数呼び出しで新しいcクラス/ヘッダーを再び追加すると、エラーが発生しました。

まあ、これはバグかもしれません。私はそれが新しいプロジェクトを開始し、内のすべてのクラスを引っ張っていた固定のみと最速の方法。

+0

通常は、ファインダー内のファイルやProjektナビゲーター内のファイルを削除し、新しいクラスを再度作成する必要があります。 –

5

私の例では、私は2つの異なるファイルで

extern NSString const *keyString 

を宣言しました。私はそれらの名前を変更し、私の問題を解決しました。

17

#importに「* .m」というファイルがあるかどうかを確認してください。 ...それは私のミスでした表示されます

-1

ビルドフェーズ」 - > 『ソースをコンパイルは、』ボタンをクリックし、 『検証の設定』

それはあなたのプロジェクト

+0

このボタンはどこですか? –

+0

見つかりませんでした!あなたはそれについて真剣ですか? – MBH

0

あなたは非がないことを確認してください修正しますです複数のクラスで同じ名前の-instantメソッドを使用しています(たとえば、2つのViewControllerがかなり類似しているため、1つのViewControllerから2つ目のViewControllerにコードをコピー&ペーストして、 NSMutableString * filteredStringFromStringWithFilter(NSString * string、NSString * filter))、これらのメソッドのどちらも利用可能であるため、アプリケーションは混乱してしまい、2番目のクラスにRENAME ITそのクラスのメソッドへの呼び出しを変更し、混乱を取り除いたことになります。私たち全員が物事をより明確にしたいのではないでしょうか!

2

私の場合、それは定数でした。

NSString *const cellID = @"cellID"; 

この行は2つの.mファイルで記述されています。開始時にstaticキーワードを追加した後、問題は解決されました。

この問題は新しいプロジェクトでも再現できます。異なる.mファイルの定数の定義は、プライベートであるため、何の効果もないと考えるでしょう。しかし、私はコンパイラがどのようにシーンの後ろのものを扱っているのか分かりません。それに加えて、問題ナビゲータから問題をタップすると、他の問題の場合と同じように、エディタでページが開かれません。本当にイライラする。

0

異なるクラスのトウで値を両方とも変更したい場合。静的キーワードでマークすることを忘れないでください。

または打ち鳴らすには、任意の値の解釈せずに、以下のようにエラーがスローされます。

Apple Mach-O Linker Error clang: error: linker command failed with exit code 1

0

あなたはまた、時々、このエラーが発生しますFUNCクラスをリファクタリングするとき。単にProduct-> CleanとRebuildに行きます。

5
  1. Xcodeの
  2. を終了します
  3. システムの再起動
  4. 選択Xcodeの - >設定 - >拠点の場所で
  5. 、あなたは '得られたデータ' を参照します。パスのすぐ隣にある矢印アイコンをクリックします。
  6. これは '派生データ'を含むフォルダを開き、削除します。
  7. クリーン製品とファイル名を指定して実行

    まだあれば作品はその後

    ビルド設定>はありませんenter image description here

関連する問題