我有一些使用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文件中出现了十亿个错误:
有人可以向我解释一下我在这里缺少什么吗?
答案 0 :(得分:4)
您是否因为能够从互联网上获取arm_neon.h
而被误导。通常,标头不仅仅是编译器特定的,而是特定的编译器版本(甚至是编译器修订版)。对于GCC,它依赖于许多内置函数调用的编译器,并且从你的Clang屏幕截图中也可以看到它。正如您所期望的那样,如果这些仅内部函数的名称发生更改,则标头将无法编译。
让我感到惊讶的是,您无法在构建环境中使用任何arm_neon.h
随附的包含内容。我能想到的唯一一件事就是导致这就是构建命令试图为x86_64构建(对于模拟器),但你说这不是正在发生的事情。可能值得再次检查您的构建设置。
如果您仍未到达任何地方,请记住arm_neon.h
有时被视为系统标头,因此在C ++中您可能需要#include <arm_neon.h>
而不是#include "arm_neon.h"
才能获得编译器搜索系统路径。