我现在也有同样的问题,但还没有找到正确的答案。我得到了错误:

    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
duplicate symbol _OBJC_METACLASS_$_MoboSDK in:
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
ld: 75 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何帮助都是感激的。

最后,我找到了这个错误的原因,因为我添加了-ObjC到其他链接器标志。在删除这个值之后,我可以成功地构建我的项目,但我不知道为什么。有人能解释一下吗?


当前回答

我也有同样的问题。 在Xcode 7.2的路径Project Target > Build Setting > No Common Blocks中,我将其更改为No。

其他回答

我的错误是在头文件中实现了函数。 头文件中的函数定义和代码文件中的函数实现之间应该有明确的区分。

例如,我有这样的东西:

my_header.h

#ifdef my_header_h
#define my_header_h

int foo() { return 123; }

#endif // my_header_h

应该是:

#ifdef my_header_h
#define my_header_h

int foo();

#endif // my_header_h

在Xcode 6.3.2中。我检查了所有的可能性如下

1:我还没有导入。m文件在我的项目。

2:从其他链接标志中删除-ObjC。

3:删除了我所有的衍生数据。

我仍然得到同样的错误。我通过从.pch文件中删除任何变量声明来消除这个错误。在我的情况下,我在.pch文件中声明了AppDelegate对象。最后我找到了导致错误的原因。因此,我从.pch文件和我的项目工作魅力中删除任何变量的声明。

我发现公认的答案涉及到这个问题,但没有帮助我解决它,希望这个答案将有助于解决这个非常令人沮丧的问题。

duplicate symbol _OBJC_IVAR_$_BLoginViewController._hud in:

17 duplicate symbols for architecture x86_64

意味着你已经加载了相同的函数两次。当从其他链接器标志中删除-ObjC后,问题消失了,这意味着该选项导致函数加载两次:

通俗地说,这意味着我们的项目中有两个名称完全相同的文件。也许你正在将一个项目合并到另一个项目中?看看上面的错误“重复符号”错误,看看哪个文件夹是重复的,在我的情况下,它是BLoginViewController。

例如,在下图中,你可以看到我有两个BImageViewControllers,对我来说,这是导致问题的原因。

只要我删除了一个,问题就消失了:)

确保你没有导入[ViewController。M]而不是头文件

#import "ViewController.m"

我今天也有这个毛病。这是因为我在.m文件中定义了一个const值。但我定义了另一个.m文件,其中也包含这个const值。这意味着它有两个相同的const值。所以出现了这个错误。 我的解决方案是在const值之前添加一个关键字“static”。如:

static CGFloat const btnConunt = 9;

然后我构建项目,它不会报告这个错误。