1

LLVM GCC 4.2 でコンパイルされた Xcode 4.5 で開発された iOS6.0 アプリケーションで std::vector を使用しようとしています。C++ を使用しているファイルの拡張子を .mm に変更しました。これらの .mm ではコンパイルされません。次のエラーが発生しました。

ベクター: そのようなファイルまたはディレクトリはありません

インポート、インクルードを試しました。ただし、.mmに含めるだけで機能します。

私が間違っていることは何ですか?

ありがとうございました

ウェババ

解決済み : このヘッダーを含む可能性のある他の .m ファイルを慎重に確認してください。(クラスを実装するものだけでなく) 1 つ逃しました。

4

1 に答える 1

1

ヘッダーを含むすべてのファイルが Objective-C++ または C++ ファイルとしてコンパイルされていることを確認してください。これを行うには、ソース ファイルを選択します。[ユーティリティ] パネルの [ファイル インスペクター] で、Xcode がファイルをコンパイルする方法を設定できます。

たとえば、Objective-C ヘッダーを含む C ソース ファイルをコンパイルしようとすると、同じことが起こります。

編集: コンパイルに使用されるコマンドに-nostdincまたは-nostdinc++のようなものが含まれている場合、プロジェクト設定を変更する必要がある場合があります。セクション LLVM GCC 4.2 - 言語 にUse Standard System Header Directoryというラベルの付いた設定があるはずです(私にとって、これはそのセクションの最後の設定です)。はいに設定されていることを確認します。

于 2013-01-13T21:55:59.577 に答える