我正在尝试通过使用opencv(版本2.4.12)的命令行(和clang)在Mac OSX 10.9上编译C ++程序,并遇到了一些问题。
我正在尝试通过在终端中运行以下代码来编译程序:
clang --std=c++11 -stdlib=libc++ test.cpp -L/usr/local/Cellar/opencv/2.4.12/lib -lopencv_core.2.4.12 -lopencv_ml.2.4.12 -lopencv_video.2.4.12 -lopencv_ml -lopencv_video -lc++
但是我收到以下错误:
Undefined symbols for architecture x86_64:
"cv::namedWindow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
还有一串无法找到的其他opencv函数。
在做了一些额外的研究后,我发现问题可能与使用libc ++而不是libstdc ++作为库有关。我尝试切换到libstdc ++并遇到以下错误。
fatal error: 'array' file not found
#include <array>
我研究了这个错误并发现对于Mac来说,这是因为使用了libstdc ++而不是libc ++。从本质上讲,我有点陷入循环,需要一些帮助来编译这个程序。有什么想法吗?