仅在使用设备 arm_neon.h 时 Xcode6 编译错误

Posted

技术标签:

【中文标题】仅在使用设备 arm_neon.h 时 Xcode6 编译错误【英文标题】:Xcode6 Compile error only when using device arm_neon.h 【发布时间】:2014-11-28 03:02:40 【问题描述】:

我们最近刚刚更新到 Xcode6,我们在 arm_neon.h 中有很多错误,我们正在使用 glkit 框架来构建我们的应用程序。

arm_neon.h 中的错误:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:69:24:Neon 向量大小必须为 64 或 128 位 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:978:47:从向量'float16x4_t'到向量'int64x1_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:1001:10:来自标量'uint64_t'(又名'unsigned long long ') 到不同大小的向量'float16x4_t' /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:1020:10:来自向量'attribute的C风格转换((vector_size(8 * sizeof(signed char))))signed char'到不同大小的向量'float16x4_t' /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:1032:51:从向量'float16x4_t'到向量'int8x8_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:1297:10:__builtin_shufflevector 的前两个参数必须是向量 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:1389:10:__builtin_shufflevector 的前两个参数必须是向量 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3120:10:从向量'float16x4_t'到向量'int8x8_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3142:10:从向量'float16x4_t'到向量'int16x4_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3164:10:从向量'float16x4_t'到向量'int32x2_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3186:10:从向量'float16x4_t'到向量'int64x1_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3208:10:从向量'float16x4_t'到向量'uint8x8_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3230:10:从向量'float16x4_t'到向量'uint16x4_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3252:10:从向量'float16x4_t'到向量'uint32x2_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3274:10:从向量'float16x4_t'到向量'uint64x1_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3282:10:从向量'int8x8_t'到向量'float16x4_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3284:10:从向量'int16x4_t'到向量'float16x4_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3286:10:从向量'int32x2_t'到向量'float16x4_t'的C风格转换不同大小 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0/include/arm_neon.h:3288:10:从向量'int64x1_t'到向量'float16x4_t'的C风格转换大小不一

仅当我们尝试在设备中构建它时才会发生,它在模拟器上构建得很好。

谢谢。

【问题讨论】:

【参考方案1】:

我对此做了一个临时修复,直接编辑 arm_neon.h__fp16 更改为短数据类型。

编辑:

最终我们发现我们的项目将__fp16 定义为导致问题的其他东西。

【讨论】:

以上是关于仅在使用设备 arm_neon.h 时 Xcode6 编译错误的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 运行脚本构建阶段“仅在安装时运行脚本”选项

带有 Xcode 4.3.1 的 iOS 5.1:[UIColor colorWithPatternImage:] 奇怪的行为仅在设备上

本地化应用程序仅在非基本语言上崩溃,并且仅在未使用Xcode运行时崩溃

仅在“构建并运行”时在 Xcode 中运行 bash 脚本

仅在 ios 设备上反应本机“不存在捆绑 URL”

Xcode11 - UIButton 等控件高度为 48,仅在 XR/XSMAX 设备中的 AppDelegate 中