【发布时间】:2013-01-10 10:46:35
【问题描述】:
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)
只有当我尝试在模拟器中构建时(在任何我可以无错误构建的 iOS 设备上),我才会在 xcode 中收到上述错误。我有三个班级:
1.LTGlobalResultsViewController 2.LTJumpToMeViewController 3.LTJumpToPositionViewController
这三个都是在 xcode 中创建的,但 2 和 3 都在 xcode 之外进行了修改,然后重新构建。
@property bool LeagueTableLoaded 在所有三个的标题中定义。它被声明为:
@property bool leagueTableLoaded;
究竟是什么导致了这个错误?我尝试了以下方法:
我尝试在不同的类中重命名leagueTableLoaded,但这并不能解决问题。
我已尝试在 library/developer/xcode 文件夹中手动删除我的派生数据文件。
根据其他问题,我检查了我是否正在导入 .m 文件。不是这种情况。 Apple Mach-O Linker error ("duplicate symbol")
还有其他建议或建议吗? 谢谢, 詹姆斯
补充:根据要求,请从我的 .h 和 .m 文件中找到所有引用 LeagueTableLoaded 或我在尝试绕过此错误时创建的任何变体的提取:
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;
如果需要,我可以提供更多信息!
【问题讨论】:
-
请显示声明这些属性(或至少其中一个)的头文件。
-
已在问题正文中更新。谢谢
-
这还不足以解决这个问题。请转到命令提示符并切换到您的项目目录并输入
find . -type f -exec grep leagueTableLoaded {} \;并在此处发布输出。 -
输出如下: bool LeagueTableLoaded = false; @property bool LeagueTableLoadedPos; bool LeagueTableLoaded = false; if ([self checkIfBonusSubmitted] == true && self.leagueTableLoadedPos == false) self.leagueTableLoadedPos = true; bool LeagueTableLoaded = false; @property bool LeagueTableLoadedPos; bool LeagueTableLoaded = false; if ([self checkIfBonusSubmitted] == true && self.leagueTableLoadedPos == false) self.leagueTableLoadedPos = true;
-
对此有什么想法请特洛伊木马?谢谢,詹姆斯