无法获取 NEON 内在函数标头以在 XCode 中进行编译

pat*_*ick 1 xcode arm clang neon

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

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

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

#import "arm_neon.h"
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

谁能向我解释一下我在这里缺少什么吗?

Jam*_*lgh 5

您被错误地告知可以arm_neon.h从互联网上获取信息。通常,标头不仅特定于编译器,还特定于编译器版本(甚至编译器修订版)。对于 GCC,它依赖于许多编译器内置的函数调用,从 Clang 的屏幕截图来看,情况也是如此。正如您所期望的,如果这些仅供内部使用的函数的名称发生更改,标头将无法编译。

令我惊讶的是,您无法使用arm_neon.h构建环境附带的任何内容。我能想到的唯一会导致这种情况的事情是尝试为 x86_64 (对于模拟器)构建的构建命令,但你说这不是正在发生的事情。也许值得再次检查您的构建设置。

如果您仍然没有得到任何结果,请记住arm_neon.h有时将其视为系统标头,因此在 C++ 中您可能需要这样做,#include <arm_neon.h>而不是#include "arm_neon.h"让编译器搜索系统路径。