在已经工作的项目中尝试使用OpenCV框架时出现Apple O-Linker错误



我所做的是使用教程中基于openCV框架的一些代码。从EdgeDetectionSample.cpp文件中,我导入代码。

架构armv7的未定义符号:"std::__1::basic_string,std::___1::分配器>::basic_string(std::_1::basic_strung,std::__1::分配器>const&)",引用自:cv::异常::opencv2(system.o)中的异常(int,std::__1::basic_string,std::__1::allocator>const&,std:opencv2(system.o)中的cv::Exception::Exception(cv::Exception const&)"std::__1::basic_string,std::___1::分配器>::~basic_string()",引用自:cv::Mat::create(int,int const*,int)在opencv2(matrix.o)中__opencv2中的ZN2cvL7setSizeERNS_3MatEiPKiPKmb(matrix.o)opencv2(matrix.o)中的cv::Mat::Matopencv2(matrix.o)中的cv::Mat::Mat(cv::Mat const&,cv::Range const*)opencv2(matrix.o)中的cv::Mat::diag(int)constopencv2(matrix.o)中的cv::Mat::Mat(_IplImage const*,bool)opencv2(matrix.o)中的cv::Mat::reserve(unsigned long)。。。"std::__1::basic_string,std::___1::分配器>::__init(char const*,unsigned long)",引用自:cv::Mat::create(int,int const*,int)在opencv2(matrix.o)中__opencv2中的ZN2cvL7setSizeERNS_3MatEiPKiPKmb(matrix.o)opencv2(matrix.o)中的cv::Mat::Matopencv2(matrix.o)中的cv::Mat::Mat(cv::Mat const&,cv::Range const*)opencv2(matrix.o)中的cv::Mat::diag(int)constopencv2(matrix.o)中的cv::Mat::Mat(_IplImage const*,bool)opencv2(matrix.o)中的cv::Mat::reserve(unsigned long)。。。"std::_1::_vector_base_common::__throw_length_error()const",引用自:opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)opencv2(matrix.o)中的std::_1::vector,std::__1::分配器>>::_append(无符号长)。。。"std::__1::basic_string,std::___1::分配器>::operator=(std::_1::basic_string,std::__1::分配器>const&)",引用自:opencv2(system.o)中的cv::Exception::formatMessage()ld:找不到架构armv7的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

请帮我解决这个问题。我读不到那些错误。

您的项目与libstd++ (GNU C++ standard library)链接,但最新的OpenCV与libc++ (LLVM C++ standard library with C++ 11 support)链接,因此有两种方法可以解决此问题:

  1. 将您的项目链接到libc++
  2. 使用libstd++重建OpenCV

要将您的项目与libc++链接,请转到->构建设置->找到"C++标准库"行,然后在那里选择libc++。

相关内容

  • 没有找到相关文章

最新更新