2

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

架构 armv7 的未定义符号:“std::__1::basic_string, std::__1::allocator >::basic_string(std::__1::basic_string, std::__1::allocator > const&)”,引用自: cv::Exception::Exception(int, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, std::__1 ::basic_string, std::__1::allocator > const&, int) in opencv2(system.o) cv::Exception::Exception(cv::Exception const&) in opencv2(system.o) "std::__1: :basic_string, std::__1::allocator >::~basic_string()",引用自: cv::Mat::create(int, int const*, int) in opencv2(matrix.o) __ZN2cvL7setSizeERNS_3MatEiPkiPKmb in opencv2(matrix .o) cv::Mat::Mat(cv::Mat const&, cv::Range const&, cv::Range const&) 在 opencv2(matrix.o) 中 cv::Mat::Mat(cv::Mat const&, cv::Range const*) 在 opencv2(matrix.o) 中 cv::Mat::diag(int) 在 opencv2( matrix.o) cv::Mat::Mat(_IplImage const*, bool) 在 opencv2(matrix.o) cv::Mat::reserve(unsigned long) 在 opencv2(matrix.o) ... "std:: __1::basic_string, std::__1::allocator >::__init(char const*, unsigned long)",引用自: cv::Mat::create(int, int const*, int) in opencv2(matrix. o) __ZN2cvL7setSizeERNS_3MatEiPKiPKmb in opencv2(matrix.o) cv::Mat::Mat(cv::Mat const&, cv::Range const&, cv::Range const&) 在 opencv2(matrix.o) cv::Mat::Mat (cv::Mat const&, cv::Range const*) 在 opencv2(matrix.o) cv::Mat::diag(int) const 在 opencv2(matrix.o) cv::Mat::Mat(_IplImage const* , bool) 在 opencv2(matrix.o) opencv2(matrix.o) 中的 cv::Mat::reserve(unsigned long) ... "std::_1:: _vector_base_common::__throw_length_error() const",引用自:std::_ 1::vector, std::__1::allocator > >:: _append(unsigned long) in opencv2(matrix.o) std:: _ 1::vector, std::__1::allocator >>:: _append(unsigned long) in opencv2(matrix.o) std::_ 1::vector, std::__1::allocator >>:: _append (unsigned long) 在 opencv2(matrix.o) std::_ 1::vector, std::__1::allocator > >:: _append(unsigned long) 在 opencv2(matrix.o) std::_ 1::向量,std::__1::allocator > >:: _append(unsigned long) in opencv2(matrix.o) std::_ 1::vector, std::__1::allocator >:: _append(unsigned long)在 opencv2(matrix.o) 标准::_1::vector, std::__1::allocator >:: _append(unsigned long) in opencv2(matrix.o) ... "std::__1::basic_string, std::__1::allocator >:: operator=(std::__1::basic_string, std::__1::allocator > const&)",引用自: cv::Exception::formatMessage() in opencv2(system.o) ld: symbol(s) not found对于架构 armv7 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

这个你能帮我吗。我无法阅读这些错误。

4

1 回答 1

4

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

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

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

于 2013-02-05T11:00:56.207 回答