我正在努力为 iPhone 4 编译 Eigen 库,它有一个带有 armv7 指令集的 ARM 处理器。到目前为止,当我指定预处理器定义 EIGEN_DONT_VECTORIZE 时,一切正常。但由于一些性能问题,我想使用 armv7 优化的代码。
无论我使用哪种编译器 LLVM-GCC 4.2 或 LLVM CLang 2.0,我总是遇到编译错误。我发现(或者更好地认为),LLVM-GCC 4.2 是访问这些 ARM-NEON 特定指令的唯一方法。
当我不设置 EIGEN_DONT_VECTORIZE (并向 gcc 提供 -mfloat-abi=softfp -mfpu=neon)时,我收到以下 gcc 编译器错误:
src/m3CoreLib/Eigen/src/Core/arch/NEON/PacketMath.h:89:错误:'__ extension__'之前的预期不合格ID
我已阅读有关使用“旧”gcc 4.2 的问题以及使用较新版本 gcc 的建议。我不确定,但我相信由于应用商店的批准,这不是一个选择。我还能做些什么来为 iPhone 编译它。?有谁解决了这个问题吗?
谢谢,凯