Xcode中的重复符号错误

Xcode中的重复符号错误,xcode,compiler-errors,duplicates,symbols,Xcode,Compiler Errors,Duplicates,Symbols,我在添加自己的框架后尝试构建项目时,在Xcode 4.5.1中遇到了“重复符号”错误。我验证了框架文件是否存在重复项,但没有重复项。但当我将框架添加到项目中时,它会抱怨这些错误。请建议 duplicate symbol _NXArgc in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o /Us

我在添加自己的框架后尝试构建项目时,在Xcode 4.5.1中遇到了“重复符号”错误。我验证了框架文件是否存在重复项,但没有重复项。但当我将框架添加到项目中时,它会抱怨这些错误。请建议

duplicate symbol _NXArgc in:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW

duplicate symbol _NXArgv in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW

duplicate symbol ___progname in:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW

duplicate symbol _environ in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW

duplicate symbol start in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW
ld: 8 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

提前感谢。

这些符号在标准C库的启动代码crt.o中。通常,初始化全局变量和对象应该是可执行文件的入口点。它还将调用主函数

但对于一个框架,您不应该将其包含在二进制文件中,因为框架不应该包含main。 我相信在框架的目标构建设置中,“链接标准库”选项为“是”。这将把crt.o链接到您的框架中。当您将框架链接到项目中时,将出现重复的符号


请在您的构建设置中将“链接标准库”选项设置为否。

我在使用两个第三方框架时遇到了同样的问题。我通过在构建设置中从“其他链接器标志”中删除“all_load”来解决这个问题

您的应用程序提供了一个包含8个复制符号的实现

您可以通过多种方式实现此目的:

您有两个模块声明同一个类。也许不再需要一个了

您正在导入文件.m和.h:-(从一个位置删除)中的任何头文件

您正在某处导入任何.m文件。:-(导入.h文件而不是.m文件)


您已经在任何.h文件的@interface{}外部(上面)定义并声明了任何常量变量,它可能是重复的。:-(在.m文件中执行此操作。)

还要检查应用程序中的
.h
文件中是否正确定义了常量等全局变量

定义全局变量的正确方法是在
.h
文件中使用
extern
变量


注意:这不是以前的Xcode版本的问题。我用Xcode 6.3解决了这个问题

如果只有在模拟器中运行应用程序时才出现此问题,则可以通过删除本地文件夹来解决

~/Library/Developer/CoreSimulator
Xcode将在第一次构建和运行后恢复它。 执行此操作之前,请确保备份所有设置(尤其是与模拟器设备相关的设置)


在Xcode 7.2.1版(7C1002)上测试时,我也遇到了同样的问题,但是当我在iPhone上启动它时,它确实会运行。所以,我的模拟器中只有这个问题…这里也一样,只有模拟器上有这个问题…我也有这个特殊的问题。为了寻找答案,发布了一个悬赏。您是否在.m中声明了几个同名文件的变量?现在我看到它给了您重复的变量名:_NXArgc、start、_environ、_progname、_nxargv这些变量都来自标准库。。。答案很有效。当我将linkwithstandardlibrary设置为no内置设置时,我得到了177个编译器错误,而不是1个