设置iOS项目以使用eigen

时间:2012-06-02 11:37:21

标签: c++ objective-c compiler-construction xcode4.3 eigen

我正在尝试设置一个iOS项目,以编译一个名为Eigen的线性代数数学c ++库。

我开始按照以下提到的问题的说明进行操作:

How to compile Eigen in iPhone

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

  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优化拱。在构建设置中,我在“架构”类别中看到一个绿色字段,标注(armv7)是正确的吗?
  3. 我刚创建了一个单一应用程序'',并希望在名为MathLibary的新Objective C类中使用c ++文件。因为有些人说如果我将类MathLibary.hh和MathLibary.mm命名为可能会混淆Objective C和C ++。 该课程看起来像

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

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

    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
    

    在“类型名称”

    之后,错误是预期的限定名称

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

    1. 如何更改编译器以编译用户界面的目标c文件和库中的c ++文件
    2. 我希望有人能够帮助我,非常感谢。

1 个答案:

答案 0 :(得分:3)

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