2012-01-29 50 views
6

我想使用由Apple提供的KeyChainitemwrapper。我的项目正在使用ARC,但我已经关闭了KeyChainitemwrapper.m上的ARC。在“security.framework”框架,以我的项目如何更正“未定义的架构i386符号:”_main“链接问题?

我得到这个链接的问题:

Undefined symbols for architecture i386: "_main", referenced from: start in crt1.10.6.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我是新的iOS开发,但我的猜测是,这个问题是与事实做到这一点的模拟器正试图编译我的源代码i386而不是arm?我关闭了吗?

无论如何..看来这个包装是相当受欢迎的,所以我想知道是否有人可能熟悉这个问题可以伸出援助之手。

感谢

回答

24

这表明你没有在你的项目编制main.m。请确保以下事项:

  • 您在项目
  • main.m它有一个功能叫main()
  • 你实际上是在编译它。转到您的项目,然后构建阶段,然后编译源代码。确保main.m在列表中。
+0

感谢您的回复。我的项目不包含名为main.m的文件。我也找不到“主”的提法。 – Nick 2012-01-29 00:39:11

+0

你走了。编译器指出,你没有'main()'。您应该可以从项目模板重建项目。 – 2012-01-29 00:46:45

+0

我的确从一个项目模板开始。也许我已经禁用了建筑物? – Nick 2012-01-29 00:47:39

0

当您使用模拟器时,您的代码将被编译为i386架构。 如果你使用真实的设备,你的代码将被编译为arm。

我下载了这个项目,在“其他来源”组里有一个main.c文件。

0

删除项目中对main.ce的引用为我解决了这个问题

相关问题