1
duplicate symbol _leagueTableLoaded in:
/Users/Brendan/Library/Developer/Xcode/DerivedData/2013-dbhrwzgxgwhfbqatgqpfrmqyucyu/Build/Intermediates/2013.build/Debug-iphonesimulator/2013.build/Objects-normal/i386/LTGlobalResultsViewController.o

/Users/Brendan/Library/Developer/Xcode/DerivedData/2013-dbhrwzgxgwhfbqatgqpfrmqyucyu/Build/Intermediates/2013.build/Debug-iphonesimulator/2013.build/Objects-normal/i386/LTJumpToMeViewController.o

duplicate symbol _showGLobalCompany in:

/Users/Brendan/Library/Developer/Xcode/DerivedData/2013-dbhrwzgxgwhfbqatgqpfrmqyucyu/Build/Intermediates/2013.build/Debug-iphonesimulator/2013.build/Objects-normal/i386/LTGlobalResultsViewController.o

/Users/Brendan/Library/Developer/Xcode/DerivedData/2013-dbhrwzgxgwhfbqatgqpfrmqyucyu/Build/Intermediates/2013.build/Debug-iphonesimulator/2013.build/Objects-normal/i386/LTJumpToPositionViewController.o

duplicate symbol _leagueTableLoaded in:

/Users/Brendan/Library/Developer/Xcode/DerivedData/2013-dbhrwzgxgwhfbqatgqpfrmqyucyu/Build/Intermediates/2013.build/Debug-iphonesimulator/2013.build/Objects-normal/i386/LTGlobalResultsViewController.o

/Users/Brendan/Library/Developer/Xcode/DerivedData/2013-dbhrwzgxgwhfbqatgqpfrmqyucyu/Build/Intermediates/2013.build/Debug-iphonesimulator/2013.build/Objects-normal/i386/LTJumpToPositionViewController.o

ld: 3 duplicate symbols for architecture i386

clang: error: linker command failed with exit code 1 (use -v to see invocation)

シミュレーターでビルドしようとした場合にのみ、xcode で上記のエラーが発生します (エラーなしでビルドできるすべての iOS デバイスで)。私は3つのクラスを持っています:

1.LTGlobalResultsViewController 2.LTJumpToMeViewController 3.LTJumpToPositionViewController

3 つすべてが xcode で作成されましたが、2 と 3 の両方が xcode の外部で変更されてから再構築されました。

@property bool LeagueTableLoaded は、3 つすべてのヘッダーで定義されています。次のように宣言されています。

@property bool leagueTableLoaded;

このエラーの原因は正確には何ですか? 私は次のことを試しました:

  1. さまざまなクラスで LeagueTableLoaded の名前を変更しようとしましたが、これは修正されません。

  2. library/developer/xcode フォルダーにある Derived Data ファイルを手動で削除しようとしました。

  3. 他の質問によると、.m ファイルをインポートしているかどうかを確認しました。これはそうではありません。Apple Mach-O リンカ エラー (「重複シンボル」)

他に提案やアドバイスはありますか?ありがとう、ジェームズ

追加: 要求に応じて、このエラーを回避しようとしたときに作成した LeagueTableLoaded またはバリアントのいずれかを参照する、.h および .m ファイルからのすべての抽出を見つけてください。

LTJumpToMeViewController.h
@property bool leagueTableLoadedMe;

LTJumpToMeViewController.m
@implementation LTJumpToMeViewController
bool leagueTableLoaded = false;

LTGlobalResultsViewController.h
@property bool globalLeagueTableLoaded;

LTGlobalResultsViewController.m
@implementation LTGlobalResultsViewController
bool leagueTableLoaded = false;

LTJumpToPositionViewController.h
@property bool leagueTableLoadedPos;

LTJumpToPositionViewController.m
@implementation LTJumpToPositionViewController
bool leagueTableLoaded = false;

必要に応じて、さらに情報を提供できます。

4

4 に答える 4

6

私にとっては、.h の代わりに .m ファイルをうっかりインクルードしたときに、シンボルの重複エラーが発生しました (なぜ Xcode の自動提案で .m ファイルが表示されるのでしょうか?!)

于 2015-04-30T19:35:08.033 に答える
0

この問題は、LTGlobalResultsViewController.m と LTJumpToPositionViewController.m の両方で定義されている LeagueTableLoaded bool が原因でした。

それらの1つからそれを削除すると、問題が修正されました。そもそもなぜそこにあったのかはわかりませんが!これが同じ問題を経験した他の人に役立つことを願っています! ジェームズ

于 2013-02-21T22:40:31.383 に答える