6

線形代数数学用の Eigen という c++ ライブラリをコンパイルする iOS プロジェクトをセットアップしようとしています。

で言及されている質問の指示に従い始めます。

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 に最適化された arch を使用したと述べています。ビルド設定の [アーキテクチャ] カテゴリに、標準 (armv7) と書かれている緑色のフィールドが表示されます。

,,singleViewApplication を作成したばかりで、MathLibary という新しい Objective C クラスで c++ ファイルを使用したいと考えていました。クラスに MathLibary.hh と MathLibary.mm という名前を付けると、Objective C と C++ を混同する可能性があると言う人もいました。クラスは次のようになります

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

@end

アプリを実行しようとすると、ビルドが失敗し、コンパイラーが次のようなエラーを出します: SVD.h ファイルの 47 行目:

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

エラーは「型名」の後に修飾名が必要です

私にとっては、コンパイラがSVD.hを目的のcファイルとしてコンパイルしようとしているように聞こえますが、c ++です。

  1. ユーザー インターフェイス用のオブジェクティブ C ファイルとライブラリの C++ ファイルの両方をコンパイルするようにコンパイラを変更するにはどうすればよいですか

誰かが私を助けてくれることを願っています、どうもありがとう。

4

1 に答える 1

3

ObjC と C++ を混在させたい場合は、ファイルの名前を ".mm" サフィックスに変更したことを確認しましたか? :)

于 2012-09-10T22:57:56.110 に答える