iOS 11 - Xcode 9.0 Beta 3 错误:使用未声明的标识符'vabs_s8'



Xcode给了我一个奇怪的错误:使用未声明的标识符"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

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

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

#undef arm64#undef arm

正如你所注意到的,gamekit 包括simd/common.h,其中 'vabs_s8((' 函数是未声明的。

当然,simd/common.h 包含 simd/base.h -> 和 -> simd/base.h 包含arm_neon.h(如果定义了ARM_NEON(。在 arm_neon.h 中,我们有 'vabs_s8((' 函数的声明。

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

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

解决方案:我们的一位程序员发现在其他C 标志中添加">-mfpu=neon"可以解决此问题。

相关内容

  • 没有找到相关文章

最新更新