【问题标题】:iOS 11 - Xcode 9.0 Beta 3 error: Use of undeclared identifier 'vabs_s8'iOS 11 - Xcode 9.0 Beta 3 错误:使用未声明的标识符“vabs_s8”
【发布时间】:2017-12-22 01:08:07
【问题描述】:

Xcode 给了我这个奇怪的错误:Use of undeclared identifier 'vabs_s8'

文件路径:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/usr/include/simd/common.h

此文件包含在 GameKit 框架中: GameKit.h => simd.h => vector.h => common.h

有什么建议可以解决这个问题吗?

【问题讨论】:

  • 您在项目中添加了任何第三方框架吗?
  • 不,它可以在 Xcode 8.3.3 上编译,但不能在 Xcode 9 - beta 上编译。

标签: ios xcode ios11 xcode9-beta


【解决方案1】:

此错误与您的目标架构有关。一个简单的解决方法是将它们放在 common.h 文件的顶部。

#undef arm64 #undef arm

【讨论】:

    【解决方案2】:

    如您所见,gamekit 包含 simd/common.h,其中未声明“vabs_s8()”函数。

    当然,simd/common.h 包括 simd/base.h -> 并且 -> 如果定义了 ARM_NEON,则 simd/base.h 包括 arm_neon.h。在 arm_neon.h 中,我们声明了“vabs_s8()”函数。

    因此,如果未声明 vabs_s8 意味着不包含标头,这意味着未定义 __ARM_NEON__

    __ARM_NEON__ 如果您以 armv7/arm64 为目标,则默认启用,因此这意味着您的项目设置可能有问题。

    解决方案:我们的一位程序员发现在Other C Flags中添加“-mfpu=neon”可以解决这个问题。 p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      相关资源
      最近更新 更多