无法在 XCode 中编译 NEON 内在函数 header

cannot get NEON intrinsics header to compile in XCode

我有一些使用 NEON 内在函数的 C++ 代码。根据我的阅读,您需要做的就是将 arm_neon.h 包含到您的项目中。然后我读到这个 ​​arm_neon.h header 实际上并不能自动自动提供给您,您有从网上获取它。所以我找到了这个版本并将其添加到我的项目中:

http://clang.llvm.org/doxygen/arm__neon_8h-source.html

在我项目的prefix.pch中我添加了:

#import "arm_neon.h"

当我尝试在我的 iPhone6 设备上构建时(我没有使用模拟器),我在 arm_neon.h 文件中遇到了十亿个错误:

任何人都可以向我解释一下我在这里缺少什么吗?

您误以为可以从 Internet 上获取 arm_neon.h。通常 header 不仅是特定于编译器的,而且是特定于编译器版本(甚至是编译器修订版)的。对于 GCC,它依赖于许多内置函数调用的编译器,并且从您的 Clang 屏幕截图来看,那里也有同样的情况。如您所料,如果这些 internal-only 函数的名称发生变化,header 将无法编译。

令我吃惊的是,您无法使用构建环境附带的 arm_neon.h 中的任何一个。我唯一能想到的就是构建命令试图为 x86_64 (对于模拟器)构建,但你说这不是正在发生的事情。可能值得再检查一次构建设置。

如果您仍然没有取得任何进展,请记住 arm_neon.h 有时被视为一个系统 header,因此在 C++ 中您可能需要 #include <arm_neon.h> 而不是 #include "arm_neon.h" 让编译器搜索系统路径。