XcodeでOpenCVのコンパイルエラー

エラー内容

ヘッダーファイル(*.hpp)において "Expected Identifier" が発生する。

直前のソースコードで以下の警告(Warning)が発生している。

意訳

Apple (Xcode) が提供するヘッダーファイルにおいて "NO" が定義される前に、OpenCVのヘッダーファイルを先に読み込んで "NO;" を定義しなければならない。

 

【ケース1】 Pre-Compile Header (YourProject-Prefix.pch) が存在する

Pre-Compile Headerは、ソースコードに記述したinclude文より先に読み込まれるため、ここでOpenCVのヘッダーファイルを先駆けて読み込む必要がある。

YourProject-prefix.pchの中でAppleのIncludeファイルを読み込む前にOpenCVのヘッダーをインクルードする。

記述(挿入)例

補足

Xcode5までは、プロジェクト新規作成時に *-Prefix.pch が自動生成、自動登録されていたが、Xcode6以降では明示的に作成しない限り *-Prefix.pch は存在しない。ケース1に該当するのは、(おそらく)Xcode5以前に作成されたXcodeプロジェクトでだけある。

 

【ケース2】 Pre-Compile Header (YourProject-Prefix.pch) が存在しない

ソースコード(*.m, *.h, *.cpp, *.hppなど)1つ1つで opencv.hpp のインクルード文を前に移動させる

修正前の例

修正後の例