Bil*_*ljk 5 c compiler-construction macos xcode
我刚开始学习C,并编写了我的hello world程序:
#include <stdio.h>
main()
{
printf("Hello World");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我得到一个很长的错误:
Apple Mach-O Linker (id) Error
Ld /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj normal x86_64
cd /Users/Solomon/Desktop/C/CProj
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -F/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -filelist /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/CProj.LinkFileList -mmacosx-version-min=10.7 -o /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj
ld: duplicate symbol _main in /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/helloworld.o and /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/main.o for architecture x86_64
Command /Developer/usr/bin/clang failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我正在运行xCode
我应该重新安装DevTools吗?
pax*_*blo 14
如果您阅读错误消息(特别是行开头ld: duplicate symbol _main in ...),您会发现它抱怨两个main函数,一个在:
......blah blah blah/helloworld.o
Run Code Online (Sandbox Code Playgroud)
另一个在:
......yada yada yada/main.o
Run Code Online (Sandbox Code Playgroud)
这意味着你的项目不知何故搞砸了.您有两个单独的源文件包含main或Xcode自动提供一个.
你只需要解决这个问题.
ugh*_*fhw 12
以下是解释该消息的方法:
Apple Mach-O链接器(id)错误
发生错误
Ld/Users/...
cd ...
setenv ...
/Developer/...
这是Xcode执行链接步骤的命令.您几乎总是可以忽略它并跳过下一个空白行.
ld:/ Users /.../helloworld.o中的复制符号_main和架构x86_64的/Users/.../main.o
这是实际的错误消息.它告诉您有重复的_main符号,一个在文件中helloworld.o,一个在main.o.这意味着你必须调用被调用的函数main,这是不允许的.其中一个在helloworld.c,另一个在main.c.如果删除其中一个功能或文件,则错误将消失.
Command/Developer/usr/bin/clang因退出代码1而失败
这告诉您Xcode执行的命令的退出代码.它没有错误消息那么有用,我从来没有见过除1以外的任何链接错误.