【发布时间】:2012-04-10 13:18:13
【问题描述】:
我刚开始学习 C,并编写了我的 hello world 程序:
#include <stdio.h>
main()
{
printf("Hello World");
return 0;
}
当我运行代码时,我得到一个很长的错误:
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
我正在运行 xCode
我应该重新安装 DevTools 吗?
【问题讨论】:
-
不,我得到了同样的错误
-
您用于编译此代码的命令行是什么?很有可能,您的命令行包含两个 .c 文件,它们都包含一个
main实现。具体来说,错误消息似乎表明您正在尝试将helloworld.c和main.c编译成一个可执行文件。 -
您正在链接两个都声明 main() 的不同文件。查看以下内容以查看是否有任何不属于链接的文件:/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/对象-normal/x86_64/CProj.LinkFileList
-
是的,我建议你在终端中使用编译器,
clang helloworld.c效果很好 -
这个问题被否决了吗?
标签: c xcode macos compiler-construction