2012-03-14 8 views
2

4.2からxcodeをアップグレードすると、プロジェクトは.mmファイルの@tryのエラーとして正しくビルドできませんでした。Xcode 4.3 @tryのコンパイルエラー

エラーメッセージには、試してみる前に@を付けてはいけないと言われました。

目的 - C言語が変更されているのですか他の理由がありますか?

これは、いくつかのヘッダーファイルをインポートするobjective-cファイルです。

exception_xxx.h

#define MY_EXCEPTION_TRY @try { 
#define MY_EXCEPTION_HANDLE } @catch (NSException *localException) {} 

といくつかのObjective-Cのファイル(.mmファイル)で、私はこのコードは4.2で完璧に動作しますが、Xcodeの4.3で失敗exception_xxx.h

をインポートします。

+0

例外が同じである必要があります設定が上書きされます。これはObjective-CファイルかC++ですか? (あなたはファイル拡張子が.mmであると言います) – FluffulousChimp

+0

それは正確にヘッドファイルです。 exception_xxx.h の#define MY_EXCEPTIONの@try とヘッドファイルは、いくつかのObjective-Cファイルがインポートされます(.mmファイルです) – holsety

+0

あなたは、ファイルが実際のObj-Cとしてコンパイルされていますか? –

答えて

2

C++例外を有効にすると、私の問題が解決しました。 しかしアップル?それらはobjc例外ですが、なぜC++例外も有効にする必要がありますか?

0

-fno-exceptions 

のようなものは、このフラグがあるかどうかを確認コンパイラフラグをチェックXcodeプロジェクトでは、「C++の例外を有効にする」設定はtry`ブロック@ `を取り扱う