12

iOSでObjectiveC/ C ++プロジェクトを使用していて、OS / Xから移動すると、「ファイルが見つかりません」というエラーが発生します。

#include <string>

これはクリーンなプロジェクトであり、古いプロジェクトのファイルを追加しました。STLインクルードはXCodeで設定されていますか?検索は多くの可能性を生み出します。

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/include/c++/4.2.1/debug/

しかし、これを検索パスに追加すると、さらに多くのエラーが発生します。助言がありますか?(文字列を使用しないことを除いて-それは私が移植している社内コードにあります)

xcode 4.2.1、OS / X 10.7.3で実行されているios5.0、および.cppファイルにある場合、コードはOS/Xで正常に機能します

4

2 に答える 2

18

<string>.cppファイルからのみ含まれていると本当に確信していますか?

.cppファイルを追加し、を含めることで、新しいプロジェクトでテストした<string>ところ、期待どおりに機能します(同じXcodeバージョン、同じSDKバージョン)。

<string>しかし、.mファイルに含めると、もちろん「ファイルが見つかりません」というコンパイラエラーが発生します。

ここからエラーが発生する可能性があるため、これを再確認してください。

.cppファイルからのみインクルード<string>しますか、それとも.cpp実装で使用することを目的とした.hファイルからインクルードしますか?
次に、.mファイルにも含まれている可能性があるため、エラーが発生します。

また、プリコンパイル済みヘッダーがある場合は、そこにC++のものが含まれているかどうかを確認してください...

__cplusplusまた、後者の場合、必要に応じてマクロを信頼できることを忘れないでください。

于 2012-05-01T22:33:49.577 に答える
16

ObjCファイルにヘッダーを含め、それを含めると、次の<string>ようなエラーが発生します。すべての.mファイルに対して、XCodeはCコンパイラ(clangまたはllvm-gcc)を使用します。使用するすべての.mmファイル(clang++またはllvm-g++)。

すべての.mファイルを調べて名前を.mmに変更することをお勧めします。main.mから​​main.mmを含みます。

于 2012-05-23T20:55:46.407 に答える