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

    /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到其他链接器标志。在删除这个值之后,我可以成功地构建我的项目,但我不知道为什么。有人能解释一下吗?


当前回答

我希望它一定会对你有所帮助

我得到相同的错误3重复符号的架构x86_64

在我的情况下,我从同一项目的另一个文件复制了代码。代码的a.m.文件到B.m和编译后,我得到了一个错误提到。我已经解决了通过改变全局变量的名称的错误。

这个错误出现在我的情况下,因为在两个文件中相同的声明全局变量。

其他回答

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

duplicate symbol _OBJC_IVAR_$_BLoginViewController._hud in:

17 duplicate symbols for architecture x86_64

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

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

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

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

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

#import "ViewController.m"

最近在寻找错误的来源时非常头疼。我很好奇,当我发现我的应用程序不想编译,只是因为我在不同的类中有以下代码片段:

dispatch_time_t getDispatchTimeByDate(NSDate *date)
{
    NSTimeInterval interval;
    double second, subsecond;
    struct timespec time;
    dispatch_time_t milestone;


    interval = [date timeIntervalSince1970];
    subsecond = modf(interval, &second);
    time.tv_sec = second;
    time.tv_nsec = subsecond * NSEC_PER_SEC;
    milestone = dispatch_walltime(&time, 0);

    return milestone;
}

希望这能帮到别人。

我对这个错误的问题是Podfile。 我正在使用Firebase,他们的一个豆荚就是问题所在。

我从Podfile中删除了所有的firebase pod 通过在终端中运行此代码删除了派生数据。 rm -rf ~/Library/Developer/Xcode/DerivedData/ 然后一个接一个地重新安装我需要的吊舱。

在我的案例中,我在项目中定义了两个main()方法,删除其中一个就解决了这个问题。