Macos opencv编译时使用clang ok,使用gcc not ok os x 10.9

Macos opencv编译时使用clang ok,使用gcc not ok os x 10.9,macos,opencv,gcc,clang,gcc4.9,Macos,Opencv,Gcc,Clang,Gcc4.9,我在OSX10.9上,安装了opencv-2.4.8.2。 我试图编译一个简单的代码: #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv ) { if ( argc != 2 ) { printf("usage: DisplayImage.out <Image_Path>\n"

我在OSX10.9上,安装了opencv-2.4.8.2。 我试图编译一个简单的代码:

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }

    Mat image;
    image = imread( argv[1], 1 );

    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);

    waitKey(0);

    return 0;
}
有人能帮我找出原因吗

有关我的编译器的信息:

$/usr/bin/gcc-v 配置为:--prefix=/Applications/Xcode.app/Contents/Developer/usr--gxx include dir=/usr/include/c++/4.2.1 苹果LLVM 5.1版(clang-503.0.40)(基于LLVM 3.4svn) 目标:x86_64-apple-darwin13.1.0 线程模型:posix

$/usr/local/bin/gcc-v 使用内置规格。 COLLECT\u GCC=/usr/local/bin/GCC COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin13.0.0/4.9.0/LTO-WRAPPER 目标:x86_64-apple-darwin13.0.0 配置为:../gcc-4.9-20131215/configure--enable languages=c++,fortran 线程模型:posix
GCC版本4.90 20131215(实验)(GCC)

< P>简短的答案是:您不能使用GCC在OS X 10.9上建立C++代码,而且更新得很快,因为Apple转换为使用LBC+++而不是LIbSTDC++ +,GCC与该运行时不兼容。许多尝试已经找到了解决方法,但最终却变得不可行。

< P>简短的答案是:你不能使用GCC在OS X 10.9上建立C++代码,而且更新得很快,因为Apple切换到使用LBC+++而不是LIbSTDC++ +,GCC与该运行时不兼容。人们曾多次尝试寻找解决方法,但最终证明是不可行的。

我相信您的问题可能与相关问题相同。但是,我想为您发布一个问题表示赞赏,该问题提供了足够的信息,可以快速确定您的问题。我相信您的问题可能与链接的问题相同。然而,我想为你发表一个有足够信息的问题来快速发现你的问题而鼓掌。
$ /usr/local/bin/g++ `pkg-config opencv --libs` test.cpp
Undefined symbols for architecture x86_64:
  "cv::namedWindow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
      _main in cc52UZjK.o
  "cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
      _main in cc52UZjK.o
  "cv::imshow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)", referenced from:
      _main in cc52UZjK.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status