在OS X上使用imshow时出错

Jav*_*ake 1 c++ macos xcode opencv llvm

OpenCV2在XCode中设置但不幸的imshow是不起作用:

Undefined symbols for architecture x86_64:
  "cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > 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)
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的XCode运行OS X 10.8.4.

我在下面附上了一些图像,以显示XCode和库中的设置.到目前为止,似乎其他功能与OpenCV一起工作正常,除此之外.

在此输入图像描述

在此输入图像描述 在此输入图像描述

Pet*_*esh 7

我准备好了,并说你编译OpenCV2libstdc++,现在正在编译你的应用程序libc++支持.

您需要使用相同的C++库编译OpenCV2 ,否则将无法链接.

如果您nm使用OpenCV2库,如果使用它编译libstdc++,它将如下所示:

cv::imshow(std::string const&, cv::_InputArray const&)
Run Code Online (Sandbox Code Playgroud)

如果它是用它编译的libc++,它看起来像:

cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)
Run Code Online (Sandbox Code Playgroud)

得到demangled符号做:

nm library | c++filt | grep cv::imshow
Run Code Online (Sandbox Code Playgroud)