OpenCVを使ったプロジェクトがビルドできなくなっていた

2014年2月26日

OpenCVを使ったプロジェクトがビルドできなくなっていた
※MountainLion/Xcodeのバージョンは忘れた/OpenCV 2.4.5 で作成したプロジェクトを、Mavericks/Xcode 5.0.2/OpenCV 2.4.7 をインストールした環境で開いた際の話です

ビルドすると cv::namedWindow() や cv::CascadeClassifier 周りでエラーが出てしまう

Undefined symbols for architecture x86_64:
“cv::namedWindow(std::string const&, int)”, referenced from:
_main in main.o
“cv::CascadeClassifier::detectMultiScale(cv::Mat const&, std::vector<cv::Rect_, std::allocator<cv::Rect_ > >&, double, int, int, cv::Size_, cv::Size_)”, referenced from:
_main in main.o
“cv::CascadeClassifier::load(std::string const&)”, referenced from:
_main in main.o
“cv::imread(std::string const&, int)”, referenced from:
_main in main.o
“cv::imshow(std::string const&, cv::_InputArray const&)”, referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

原因は、Apple LLVM 5.0 – Language C++ の設定が、libstdc++ (GNU C++ standard library) になっていたことだった
libc++ (LLVM C++ standard library with C++11 support) に変更したら直った

スポンサーリンク