Objective c Xcode 4中的链接错误

Objective c Xcode 4中的链接错误,objective-c,macos,linker,xcode4,Objective C,Macos,Linker,Xcode4,我知道这是一个长期的机会,但我一直有一个链接器错误,我特别不理解的麻烦。请参考下图 该项目包含4个目标。此错误特别指向一个目标,该目标是用c编写的BSD/Shell帮助工具 我很抱歉说得含糊不清,因为我不完全明白可能是什么问题。有什么建议吗?谢谢。您是否包含了相应的文件?通常,这意味着定义main()的源文件尚未添加到相应的目标中 另一个可能的原因是,包含main()的源文件正在为某个体系结构(例如仅限i386)编译,但目标/可执行文件指定了不同的体系结构(例如仅限x86_64或fat/uni

我知道这是一个长期的机会,但我一直有一个链接器错误,我特别不理解的麻烦。请参考下图

该项目包含4个目标。此错误特别指向一个目标,该目标是用
c
编写的BSD/Shell帮助工具


我很抱歉说得含糊不清,因为我不完全明白可能是什么问题。有什么建议吗?谢谢。

您是否包含了相应的文件?

通常,这意味着定义
main()
的源文件尚未添加到相应的目标中

另一个可能的原因是,包含
main()
的源文件正在为某个体系结构(例如仅限i386)编译,但目标/可执行文件指定了不同的体系结构(例如仅限x86_64或fat/universal)

帮助诊断此问题的一种策略是针对project+目标运行
xcodebuild
,以检查为编译和链接目标而发出的命令


当所有其他操作都失败时,请删除目标并再次添加。

我相信是这样。我已经检查了好几次了。这个错误太神秘了,我一直在检查我能检查的所有东西。还要确保你链接了正确的框架。定义
main()
的源文件是否已添加到帮助工具目标中?是的,帮助工具是一个
.m
文件,它具有
main()
在其中定义。您是否能够在不使用Xcode的情况下构建辅助工具?我知道辅助工具曾经工作过,因为我以前在另一个项目中使用过它。从那以后,我再也没有对它做过任何更改。这是在Xcode3中。我现在在Xcode4中使用相同的工具。我注意到BSD/Shell应用程序现在在Xcode4中被重命名为
命令行工具。我假设它是一样的。在构建设置中,我总是在
i386
x86_64
架构中使用它。我刚刚删除了helper工具,并完成了同样艰巨的任务,将其放回项目中,它神奇地修复了自己。我真的不知道,为什么。也许是我最初没有选中的复选框。不管怎样,错误现在已经消失了。谢谢你的帮助。