我刚开始编程,并试图学习C.
对于我的作业,我必须设计一个程序,我很确定我的代码是正确的,但每当我尝试测试它,甚至直接从书中试用程序时,我都会收到这个错误。
Ld "/Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Products/Debug/Lab 2.app/Contents/MacOS/Lab 2" normal x86_64
cd "/Users/BasirJamil/Desktop/Lab 2"
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Products/Debug -F/Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Products/Debug -filelist "/Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Intermediates/Lab 2.build/Debug/Lab 2.build/Objects-normal/x86_64/Lab 2.LinkFileList" -mmacosx-version-min=10.7 -framework Cocoa -o "/Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Products/Debug/Lab 2.app/Contents/MacOS/Lab 2"
ld: duplicate symbol _main in /Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Intermediates/Lab 2.build/Debug/Lab 2.build/Objects-normal/x86_64/File.o and /Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2-fuyrgmtkjwgafzctwttcpwxptwox/Build/Intermediates/Lab 2.build/Debug/Lab 2.build/Objects-normal/x86_64/main.o for architecture x86_64
Command /Developer/usr/bin/clang failed with exit code 1
有人可以解释问题是什么,以及我如何解决它,而不会过度技术(如果可能的话)?记住,我还是编程的新手
提前致谢
答案 0 :(得分:11)
ld: duplicate symbol _main in /Users/BasirJamil/Library/Developer/Xcode/DerivedData/Lab_2
您有一个变量(最有可能)或多次定义的函数。实际上,您可能已经定义了_main
两次。
它有助于读取整个错误消息,而不仅仅是最后一行。 : - )
检查您的代码。
答案 1 :(得分:5)
您也可能会因为意外包含实现文件而不是头文件而出现此错误。例如#import“MyClass.m”而不是#import“MyClass.h”
答案 2 :(得分:5)
正如其他答案中所述,这是因为链接器找到了多个名称相同的符号......在本例中为“_main”。造成这种情况的原因有很多(全局变量/同名方法,定义全局变量/方法 - 与声明相反 - 在.h文件中包含多次,等等。)
然而,这与Xcode相关,您可能想要检查的第一件事是您的构建阶段。您的“编译源”构建阶段可能会多次编译同一个文件。在你的情况下,它可能是“main.m”。
在我添加了很多本地化的.xib文件到我的项目并且Xcode崩溃之后,今天发生了这种情况。
答案 3 :(得分:1)
我有这个错误,我所做的只是看看我的"构建阶段" - > "编译来源"并删除所有重复的文件。
答案 4 :(得分:1)
此错误正在讨论具有相同名称的2个函数 - 已定义main。根据你的描述,你是C的新手,所以我想你可能会犯同样的愚蠢错误。在一开始,我只是简单地拖动我可以下载的所有源文件来研究C,2个项目包括LUA和http-parser然后我开始构建并运行我的Xcode项目然后我遇到了你发布的完全相同的错误消息这里。
答案 5 :(得分:0)
我得到了同样的错误,我使用了file->最近打开 - >清晰的菜单。在我完成之后,错误消失了。您的代码没有任何问题,只需清理历史记录......