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"可以解决此问题。