11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

XCode + OpenCV3.xで、Expected Identifierエラーが出る場合の対処方法

Last updated at Posted at 2017-02-06

はじめに

OpenCV3.2をダウンロードしてきてコンパイルした時に、以下のようなエラーが発生したので備忘的にまとめます

エラー内容

exposure_compensate.hpp
Expected identifier
blenders.hpp
Expected identifier

原因

どちらも標準のNOマクロと、OpenCV内の該当ファイルで定義されているNOマクロがバッティングしているために発生しています。
以下のような記述があるので該当ソースを見ると一目瞭然なのですが・・・

exposure_compensate.hpp
# if defined(NO)
#  warning Detected Apple 'NO' macro definition, it can cause build conflicts. Please, include this header before any Apple headers.
# endif

対処方法

OpenCVのヘッダファイルを、標準のヘッダファイルより、前に持ってきます。

例えば、

[修正前]TestOpenCv.mm

//
//  TestOpenCv.mm
//
# import <Foundation/Foundation.h>
# import <UIKit/UIKit.h>

# import <opencv2/opencv.hpp>
# import <opencv2/imgcodecs/ios.h>
# import "CvTest02-Bridging-Header.h"

こうなっているものを、

[修正後]TestOpenCv.mm
//
//  TestOpenCv.mm
//
# import <opencv2/opencv.hpp>
# import <opencv2/imgcodecs/ios.h>

# import <Foundation/Foundation.h>
# import <UIKit/UIKit.h>
# import "TestOpenCv-Bridging-Header.h"

このようにします。

関連リンク

Build with opencv 3.1 in ios failed because of the enum name #6114

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?