【问题标题】:How do I correct the "Undefined symbols for architecture i386: "_main" linking issue?如何更正“架构 i386 的未定义符号:“_main”链接问题?
【发布时间】:2012-01-29 00:05:00
【问题描述】:

我正在尝试使用苹果提供的 KeyChainitemwrapper。我的项目正在使用 ARC,但我在 KeyChainitemwrapper.m 上关闭了 ARC。我将“security.framework”框架链接到我的项目。

我遇到了这个链接问题:

架构 i386 的未定义符号: “_main”,引用自: 从crt1.10.6.o开始 ld:未找到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我是 ios 开发的新手,但我的猜测是问题与模拟器试图编译我的目标 i386 而不是 arm 的源代码有关?我接近了吗?

无论如何.. 看来这个包装器相当受欢迎,所以我想知道是否有可能熟悉这个问题的人可以帮忙。

谢谢

【问题讨论】:

    标签: objective-c ios ios5 automatic-ref-counting keychain


    【解决方案1】:

    这表明您没有在项目中编译main.m。请确保以下几点:

    • 您的项目中有main.m
    • 它有一个函数叫做main()
    • 您实际上是在编译它。转到您的项目,然后是 Build Phases,然后是 Compile Sources。确保main.m 在列表中。

    【讨论】:

    • 感谢您的回复。我的项目不包含名为 main.m 的文件。我也找不到对“主要”的引用。
    • 你去。正如编译器所指出的,您没有main()。您可能应该从项目模板重建您的项目。
    • 我确实从一个项目模板开始。也许我已经禁用了某些东西的构建??
    • 我错误地吹走了确实包含 main 的 'supporting ..' 组。哎呀。非常感谢!
    • 如果有人想知道,这个main.m文件默认是隐藏的,你必须使用finder找到它,创建新项目,将它复制到旧项目并包含在Compile Sources下构建阶段选项卡
    【解决方案2】:

    当您使用模拟器时,您的代码将针对 i386 架构进行编译。 如果您使用真实设备,您的代码将针对 arm 进行编译。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 2011-08-14
        • 1970-01-01
        • 2011-10-30
        • 2023-03-11
        相关资源
        最近更新 更多