2011-06-26 10 views
6

私は自分のプロジェクトでベクターを使う必要があります。 .mファイルを.mmに変更してObjective-C++にしました。しかし、私が言ってみると:#include <vector>そのようなファイルやディレクトリはありません

#include <vector> 

私の.hファイルまたはディレクトリが見つかりません。エラーが表示されませんが、私の.mmファイルにコードの行を入れても、@interface(これは私の.h)にあるベクトルが必要なので、.hファイルにベクトルファイルですか?

はまた、私はObjective-Cの++などのすべてをコンパイルし、それを変更しようとしているが、私は私が使用していますCocos2dライブラリ内のいくつかのエラーを取得するので、それが動作しません...

答えて

27

は、あなたの.hファイルをされていますその他の.hまたは.mファイルに含まれていますか?

もしそうなら、それらのファイル(またはファイルなど)を.mmにする必要があります。あなたがが表示されます - 「言語LLVM GCC 4.2」

+0

.hとと.mmを一緒に組み合わせますか? – Dair

+5

この特定のヘッダーファイル(x.hなど)は当然x.mmに含まれていますが、OTHERモジュールでもタイプxのオブジェクトを使用していると思われます(yなど)。したがって、y.hには "#include x.h"という行が含まれます。コンパイラがy.mをコンパイルしているとき、C++コードを期待していないので、x.hの行 "include "が出てくると文句を言うでしょう。したがって、y.mmでC++コードを使用していなくても、ymの名前をy.mmに変更する必要があります。最後に、yhはzhに含まれる可能性があります。zmをz.mmなどに変換する必要があります。可能ならばmmファイル内のベクトル。 – mackworth

+0

これはうまくいきました。ありがとう! – Dair

6

あなたのプロジェクトをクリックした場合、.mmまたはそのような何かするために、任意.Mを変更せずに、はtagets->ダウンへのすべての道を行くビルド設定をクリックしてくださいソースをコンパイルするは、その値をObjective-C++に変更します。

関連する問題