设置iOS项目以使用eigen

rcp*_*chs 5 c++ compiler-construction objective-c eigen xcode4.3

我正在尝试建立一个iOS项目,以编译一个名为Eigen for for Cine for Linear Algebra maths的c ++库.

我开始按照提到的问题的说明:

如何在iPhone中编译Eigen

但仍有一些我无法弄清楚的事情.

  1. 用户Stafan说要设置正确的编译器标志(-mfpu = neon -mfloat-abi = softfp).我在哪里设置这些标志?我已经发现为单个文件设置标志,如http://meandmark.com/blog/2011/10/xcode-4-setting-compiler-flags-for-a-single-file/.但是我需要设置这些标志的文件是什么?特别是来自Eigen库的c ++文件不会出现在这里.
  2. 用户Blukee说他在构建设置中使用了armv7优化的拱门.在构建设置中,我在Architectures类别中看到一个绿色字段,标语(armv7)是什么对的?

我刚刚创建了一个单一应用程序,并希望在一个名为MathLibary的新Objective C类中使用c ++文件.因为有些人说如果我将类MathLibary.hh和MathLibary.mm命名为可能会混淆Objective C和C++.这堂课看起来像

#import "MathLibary.hh"
#define EIGEN_DONT_VECTORIZE
#import "SVD.h"
@implementation MathLibary

@end
Run Code Online (Sandbox Code Playgroud)

当我尝试运行App时,构建失败,编译器会发出一些错误,例如:在SVD.h文件的第47行,这是:

typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
Run Code Online (Sandbox Code Playgroud)

'类型名称'后面的错误是预期的限定名称

对我来说,这听起来是编译器尝试将SVD.h编译为目标c文件但是是c ++.

  1. 如何更改编译器以编译用户界面的目标c文件和库中的c ++文件

我希望有人能够帮助我,非常感谢.

jd.*_*jd. 3

如果您想混合使用 ObjC 和 C++,您是否确保将文件重命名为具有“.mm”后缀?:)