【问题标题】:How to add external source files to Xcode without drag/drop method?如何在没有拖放方法的情况下将外部源文件添加到 Xcode?
【发布时间】:2014-11-21 02:36:15
【问题描述】:

我有一个包含 .h 和 .m 文件的外部文件夹“external”。

“外部”文件夹已添加到我的 xcode 项目中,如下所示: 项目目标 > 构建阶段 > 编译源 > + > 添加其他 > 选择外部文件夹 > 如果需要,选中复制项目并选择创建文件夹引用。

但是,当编译它的抱怨时: 架构 x86_64 的未定义符号: “_OBJC_CLASS_$_HelloWorld”,引用自: CustomObject.o 中的 objc-class-ref ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

当我手动将所有文件拖放到项目中时,它工作正常。但是不喜欢拖放方法。这是xcode自动编译外部源文件而无需拖放的另一种方式。

请帮忙。提前致谢。

【问题讨论】:

  • 检查您是否在某处添加了两次 .m 文件
  • 检查了 HelloWorld.m 文件从不重复。我当前项目中只有一个 HelloWorld.m 文件

标签: ios xcode


【解决方案1】:

对于 Xcode 5.1 及更高版本,Apple 将 arm64(64 位架构 - x86_64) 作为标准架构的一部分。这意味着使用默认设置的项目也将自动为 arm64 构建。

您的项目似乎无法支持 64 位 - 您需要在构建设置中专门设置架构。

项目目标>>构建设置>>架构>>标准架构(armv7,armv7s)

【讨论】:

  • 我已经删除了 arm64 并按照建议在架构中设置为仅 armv7 和 armv7s,但错误看起来像以前
  • @kaneyip 您是否通过构建阶段的Link Binary with Libraries 正确链接了您的二进制文件?
  • 如果您将仅构建活动架构的构建设置设置为“是”以进行调试。检查并尝试?
  • 另外,我会检查二进制文件的架构。只需在终端上执行lipo -info staticLibrary.a。那么,x86_64 不见了?你只看到 - armv7s armv7 arm64 i386。
  • 嗨 raurora,我已在 Build Active Architecture 中将 Debug 设置为“No”,然后重试编译。但是出现了同样的错误。
【解决方案2】:

我添加了文件夹,我不知道这是否是正确的过程,所以首先从您的项目中删除该文件夹引用,我们可以在此处添加步骤以其他方式进行

  • 首先在您的项目编辑器中,在左侧编辑器中右键单击一个文件,该文件将显示如下选项

  • 点击Add Files to "your project name"然后我们必须选择文件夹并添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多