Undefined symbols for architecture arm64:

报错:  Undefined symbols for architecture arm64:

这个经常会遇到,现在整理下来



1. 

<pre class="lang-c prettyprint" name="code" style="white-space: pre-wrap; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 5px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; overflow: auto; width: auto; max-height: 600px; background-color: rgb(238, 238, 238);">这种情况一般是库引用的问题,解决办法<span style="color: rgb(70, 70, 70); font-family: simsun; line-height: 21px;">选择工程的TARGETS-->Build Phases-->Link Binary With Libraries 点击“+”图标添加对应的库。</span>
<span style="color: rgb(70, 70, 70); font-family: simsun; line-height: 21px;">或者 编译时候找不到对应的类,所以需要我们在Build Phases-->Compile Sources中手动添加XXX.m 以及</span><span style="color: rgb(70, 70, 70); font-family: simsun; line-height: 21px;">XXX</span><span style="color: rgb(70, 70, 70); font-family: simsun; line-height: 21px; background-color: rgb(240, 240, 240);">.m两项,之后clean项目,重新编译即可。</span>

 


2. 

//http://stackoverflow.com/questions/19213782/undefined-symbols-for-architecture-arm64 ()

The issue is that the cocoapods have not been built for arm64 architecture yet thus they cannot be linked when you build them. Likely you cannot use those packages until they are updated and use that architecture. You can fix the linker error by going to project -> target (your project name) -> build settings and change architectures to standard architectures (armv7, armv7s), and valid architectures to armv7, armv7s.

问题在于cocoapods尚未建立arm64建筑因此不能当你建造有关。可能你不能使用这些包,直到他们更新和使用该架构。你可以修复链接器错误,将项目- >目标(项目名称)- >构建设置和改变架构标准架构(v7,v7)和有效的架构v7,v7。去掉arm64留armv7和armv7s

Note though, this means you won't get the full power of the 64 bit processor. You said you are building for the 5s, so there may be some reason you need this. If you for some reason absolutely need that power (perhaps you are building a game), and desperately need those files, you could submit a pull request and then recompile the project to arm64 by setting those same fields to arm64 in the files you pulled from the open source projects. But, unless you really need these files to be 64 bit compatible, that seems like a bit of overkill for now.

注意,这意味着你不会得到64位处理器的全部威力。你说你正在建立5 s,所以可能会有一些原因你需要这个。如果你因为某些原因绝对需要这种力量(也许你正在构建一个游戏),并迫切需要这些文件,你可以提交一个请求,然后重新编译项目arm64通过设置这些字段的arm64文件从开源项目。但是,除非你真的需要这些文件64位兼容,这好像有点大材小用了。

EDIT: Some people also reported that setting Build For Active Architectures to YES was also necessary to solve this problem.

有些人还说,Build For Active Architectures = yes 也可以解决这个问题。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个错误提示,表示在编译 Mac 应用程序时遇到了编译器找不到符号的问题,其中涉及到了 ARM64 架构。这通常是由于代码中使用了未定义的函数或变量,或者是链接器无法找到正确的库文件导致的。需要进一步检查代码,并确保库文件和符号都正确定义和链接。 ### 回答2: macOS是苹果公司的操作系统,不同于Windows和Linux,它专门为苹果公司的设备设计。在macOS中,开发人员们经常会遇到各种各样的编译错误和异常。这些错误很少是显而易见的,尤其是当你在编译器输出信息中看到了 “undefined symbols for architecture arm64” 时,你可能会感到很疑惑。让我们来深入了解一下这一异常信息的原因。 首先,我们需要理解什么是符号。符号在计算机科学中有着广泛的应用,它们是程序编译时被创建的一种元素,代表着函数、变量、类及其他定义,程序链接器将符号与实际的机器代码关联起来。在macOS中,arm64代表64位的ARM体系结构。在使用Xcode编译iOS或macOS应用程序时,错误信息中的 “undefined symbols for architecture arm64” 表示编译器打开了一个与设备CPU架构不兼容的库或文件,因此编译器无法正确识别它们。 为了解决这种问题,我们可以采取以下方法: 1. 更新库和文件 首先我们需要检查本地环境中使用到的库和文件是否都是与我们所使用的CPU架构兼容的版本。如果不兼容,则需要更新库和文件,确保它们能与你的CPU架构兼容。 2. 检查编译器选项 在使用编译器时,需要设置正确的选项来确保执行正确的CPU架构。我们需要检查编译器选项,确保目标CPU架构与所选选项一致。 3. 更新Xcode 如果上述两种方法都没有解决问题,那么我们可以考虑更新Xcode,确保它与我们所使用的CPU架构兼容。 总而言之,当你在编译器输出信息中看到了 “undefined symbols for architecture arm64” 时,它可能是由不兼容的库或文件引起的。我们需要更新库和文件、检查编译器选项以及更新Xcode以确保它们能够与我们所使用的CPU架构兼容。 ### 回答3: "mac undefined symbols for architecture arm64"错误通常指出了arm64的框架中存在未定义的符号。这通常会发生在编译或链接程序时,因为在架构中无法找到符号。 这个错误的最简单的解决方案是添加缺失的库或框架,或者确保正确地加载了库或框架。使用Xcode的话,在“Build Phases”的“Link Binary with Libraries”中添加必要的库或框架即可。 此外,这种错误也可能是由于优化标志设置不正确导致的。在Xcode的“Build Settings”中,您可以找到“Optimization Level”并尝试将其设置为“None”。 如果以上方法都不能解决问题,那么建议您观察错误行中指向未定义符号的位置,并查看相应的代码(通常是代码中缺少头文件或声明)。找到问题所在后,您可以将相应的库、框架或头文件添加到项目中。 最后,如果您不确定该怎么解决这个错误,请搜索相关的标识符和错误信息,以获取更多可能有用的信息。还可以向开发者社区寻求帮助,以获取更专业的建议和解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值