gpt4 book ai didi

macos - opencv 用 clang 编译好,用 gcc 编译不行 os x 10.9

转载 作者:太空宇宙 更新时间:2023-11-03 21:56:59 26 4
gpt4 key购买 nike

我在 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 pkg-config opencv --libs test.cpp).

这是我使用 gcc 4.9 得到的结果:

$ /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

谁能帮我弄清楚为什么?

关于我的编译器的信息:

$/usr/bin/gcc -v配置为:--prefix=/Applications/Xcode.app/Contents/Developer/usr--with-gxx-include-dir=/usr/include/c++/4.2.1Apple 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/gccCOLLECT_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线程模型:posixgcc 版本 4.9.0 20131215(实验)(GCC)

最佳答案

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

关于macos - opencv 用 clang 编译好,用 gcc 编译不行 os x 10.9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com