问题标签 [arm64]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2383 浏览

ios - 由于缺少 arm64 的拱门,使用 cocoapods 的 XCode 项目突然中断

我已经在一个使用 CocoaPods 的项目上工作了几个星期:

podfile 也已经好几个星期没有改变了。但是,今天我突然遇到了构建错误,我无法弄清楚出了什么问题或构建突然开始失败的原因。

有什么想法可能是错的吗?我查看了所有项目和目标,他们将 64 位列为有效架构。

0 投票
5 回答
3885 浏览

ios - 忽略文件 SDWebImage.framework,缺少所需的架构 x86_64

我已经在我的 Xcode 5 / iOS 7 项目中安装了SDWebImage,但是构建给了我以下问题,这将导致一个致命的异常:

SDWebImage 似乎是导致Google Analytics 出现此问题的原因,最好的解决方案似乎是通过在构建设置中使用标准架构(armv7、armv7s)来削减 arm64。我真的不想这样做,而 SDWebImage 有这个问题归咎于 libwebp,它建议暂时回退到框架 3.2。

我已经在运行框架 3.5。有谁知道如何解决这个问题,还是我坚持这些变通办法?

(谢谢!)

0 投票
3 回答
16930 浏览

ios - NSInteger 和 NSUInteger 在混合的 64 位 / 32 位环境中

我在 NSLog / NSAssert 等调用中有相当数量的字符串格式说明符,它们分别使用%d%uwithNSInteger (= int on 32bit)NSUInteger (= unsigned int on 32bit)类型。

将应用程序转换为 64 位时,这会发出警告(当然),正如%ld %lu现在变成longandunsigned long类型所预期的那样。

简单地转换格式说明符当然会在 32 位构建中引入反向警告。
因此,我看到的唯一没有警告的解决方案是使用 64 位说明符,并将 32 位构建中出现警告的任何地方都转换为 64 位值类型。

但是我想知道是否可能有专门针对NSIntegerandNSUInteger类型的格式说明符,它们可以在两种架构上工作而无需强制转换?

0 投票
3 回答
1647 浏览

ios - stdargs [va_start(), va_​​arg(), etc] 在 arm64 上损坏?

我有一个以标准方式使用可变参数的 c 函数,下面是一个简化示例:

在所有 armv7s 及更低版本的设备以及包括 64 位模拟器在内的所有模拟器上,这都成功了,并且将 v1 到 vn 的变量分配给 p1 到 pn,但是当它在 arm64 上执行时,似乎可变参数列表是向后的( v1 = pn,v2 = pn-1, ..., vn = p1)

有什么解决办法吗?还是我错过了描述此更改的文档?

谢谢

编辑:

我没有提到这个问题的一个关键因素,我之前没有想到要提到。我试图用一个通用的可变参数函数来混合非可变参数函数。

注意:使用的编译器是 Apple LLVM 5.0

0 投票
2 回答
1387 浏览

iphone - 优化RGBA->RGB arm64组装

我编写了这个非常简单的 NEON 实现来从 RGBA 转换为 RGB。它有效,但我想知道是否还有其他方法可以进一步提高性能。

我尝试使用预取大小并进一步展开循环,但性能并没有太大变化。顺便说一句,在预取维度方面是否有任何经验法则?我在网上找不到任何有用的东西。此外,在“ARMv8 指令集概述”中,我看到还有一个用于存储的预取,这有什么用?

目前我在 iPhone5s 上转换 1280x720 图像需要大约 1.7 毫秒。

0 投票
4 回答
7776 浏览

ios - 版本 6.7.0 中架构 arm64 Google AdMob 的未定义符号

好的,谷歌 AdMob API 现在应该适用于 arm64,但我收到了这个错误。

我在 Google 上搜索过,很多人建议避免使用 64 位功能。但是现在 API 应该可以工作了,所以我不明白我为什么要这样做。

我真的被困在这里了。

0 投票
2 回答
1805 浏览

ios - 64 位 iOS 设备上的 asm("trap")

在我自己开发的断言宏中,我一直在 iOS 设备上使用 asm("trap")(或在 iOS 模拟器上使用 asm("int3"))来中断调试器。但是,在设备的 64 位版本中,我得到了陷阱指令的“无法识别的指令助记符”。arm64是否有等价物?

(像 __builtin_trap() 或 raise(SIGINT) 这样的替代方案确实有效,但有一些我不喜欢的行为;前者不会让你继续休息,而后者是一个函数,所以你总是比你低一级中断时需要在堆栈中的位置。)

0 投票
2 回答
647 浏览

c++ - 为什么 Apple 的 Clang(来自 Xcode 5)为 arm64 制作 typeinfos private_extern?

如果你编译这个文件 p3.cxx:

像这样:

然后检查“typeinfo for foobarclass”的符号:

为什么arm64 案例中的符号 weak private external ?这意味着 dlsym() 在运行时找不到它。这会破坏 LibreOffice 代码库中的某些低级内容。

0 投票
3 回答
3247 浏览

ios - 架构设置为 64 位时图像不显示

为了将我的应用程序转换为 64 位,我将架构构建设置更改为:

ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";

应用程序运行良好,只是某些图像未显示(空白)。为什么会发生?任何线索?

0 投票
1 回答
258 浏览

ios - 在arm64上将字符串转换为整数?

我有一小段代码,我注意到它们对arm64目标的行为不同。我从 JSON 数据中获取数字字符串,然后使用integerValue将字符串转换为整数。字符串通常有数千个分隔符,以逗号的形式。

在非 64 位目标(iPhone 4/s、5/s 等)上,一切正常,无论是否有逗号分隔千位,我都能得到正确的整数。但是, onarm64integerValue返回分隔符逗号之前的第一个“块”数字。我已经包含了代码和示例结果,以显示到底发生了什么:

例如,在非 64 位目标上: BTCValue = @"54,321.00"value = 54321.

然而,在 arm64 目标上: BTCValue = @"54,321.00"value = 54.

是int还是NSInteger似乎并不重要value,无论如何都会发生同样的事情。有什么我想念的吗?我不明白为什么在 armv7 上一切正常,但在 arm64 上却不行。