opencv用clang ok编译,gcc不行os x 10.9

时间:2014-05-06 19:42:05

标签: macos opencv gcc clang gcc4.9

我在OS X 10.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;
}

并且可以使用clang(/ usr / bin / g ++ -arch x86_64 pkg-config opencv --libs test.cpp),但不能使用gcc 4.9(/ usr / local / bin / g ++ -arch x86_64 {{1} } test.cpp)。

这是我用gcc 4.9获得的:

pkg-config opencv --libs

任何人都可以帮我找出原因吗?

关于我的编译器的信息:

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

$ / usr / local / bin / gcc -v 使用内置规格。 COLLECT_GCC =在/ usr / local / bin目录/ GCC COLLECT_LTO_WRAPPER =的/ usr /本地/的libexec / GCC / x86_64的-苹果darwin13.0.0 / 4.9.0 / LTO-包装 目标:x86_64-apple-darwin13.0.0 配置为:../ gcc-4.9-20131215/configure --enable-languages = c ++,fortran 线程模型:posix gcc版本4.9.0 20131215(实验性)(GCC)

1 个答案:

答案 0 :(得分:7)

简短的回答是:你不能使用GCC在OS X 10.9及更高版本上构建C ++代码,因为Apple转而使用libc ++而不是libstdc ++,而GCC与该运行时不兼容。已经进行了许多尝试来找到一种解决方法,但最终结果却是不可行的。