仅在使用设备 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 4.3.1 的 iOS 5.1:[UIColor colorWithPatternImage:] 奇怪的行为仅在设备上