2
问题可能涉及使用Apple的LLVM 3.1编译器,我相信可以通过禁用NEON来解决此问题。但是我们想使用NEON。XCode IOS Apple LLVM 3.1 - Eigen NEON中断
我也很积极这是我在XCode中的设置错误,但它可能与苹果。真的,我只是向正确的方向伸出一些提示。
/Eigen/src/Core/util/Macros.h
188:Unknown type name 'namespace'
188: Expected ';' after top level declarator
/Eigen/Core
144:'cerrno' file not found
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/3.1/include/arm_neon.h
55: Unknown type name 'float32_t'
该缺失float32_t错误发生在该文件中的每个实例。即使第33行的typedef显然已完成。
更新: 如果我强制#define EIGEN_NO_DEBUG
那么剩下的唯一错误就是缺少cerrno。实际上,似乎所有的cXXX库缺失(例如cstdlib)。但如果我把它们包括在Eigen之外的话,它们就会工作。
第一个错误让我觉得你是用clang编译而不是用clang ++,或者至少用c编译器而不是C++编译器。 –
我包含一些C++文件(包括Eigen)的文件是一个.mm文件,因此我认为它会使用clang ++。我还没有想出如何告诉XCode向我展示它的编译器日志,所以我真的明白它在做什么。 – Halsafar
感谢sharth。问题被发现。 在“SupportingFiles”下是main.m.这意味着clang被用于编译包含这些文件的main.m,并最终导致Eigen被编译错误。我很惊讶没有一百万以上的错误。 将main.m重命名为main.mm,解决了问题。 我无法回答我自己的问题... +1代表短。 – Halsafar