不能让NEON内在函数头在XCode中编译

时间:2016-07-04 19:10:08

标签: xcode arm clang neon

我有一些使用NEON内在函数的C ++代码。根据我的阅读,您需要做的就是将arm_neon.h包含到您的项目中。然后我读到这个arm_neon.h标题实际上并不是您自动可用的,您必须从Web上获取它。所以我发现并将此版本添加到我的项目中:

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

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

#import "arm_neon.h"

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

enter image description here

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

1 个答案:

答案 0 :(得分:4)

您是否因为能够从互联网上获取arm_neon.h而被误导。通常,标头不仅仅是编译器特定的,而是特定的编译器版本(甚至是编译器修订版)。对于GCC,它依赖于许多内置函数调用的编译器,并且从你的Clang屏幕截图中也可以看到它。正如您所期望的那样,如果这些仅内部函数的名称发生更改,则标头将无法编译。

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

如果您仍未到达任何地方,请记住arm_neon.h有时被视为系统标头,因此在C ++中您可能需要#include <arm_neon.h>而不是#include "arm_neon.h"才能获得编译器搜索系统路径。