You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First you should install opencv by homebrew brew install opencv
it is installed in /usr/local/Cellar/opencv/
then comile the MxArray.cpp, you need to add the compile flag like this:
Hi
I'm trying to compile the code on MacOS and I'm running into the following error.
Undefined symbols for architecture x86_64: "cv::SparseMatConstIterator::SparseMatConstIterator(cv::SparseMat const*)", referenced from: MxArray::MxArray(cv::SparseMat const&) in MxArray.o "cv::SparseMatConstIterator::operator++()", referenced from: MxArray::MxArray(cv::SparseMat const&) in MxArray.o "cv::Mat::deallocate()", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o _mexFunction in calcIIF.o cv::MatExpr::~MatExpr() in calcIIF.o std::__1::__vector_base<cv::Mat, std::__1::allocator<cv::Mat> >::~__vector_base() in calcIIF.o MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o MxArray::toMat(int, bool) const in MxArray.o MxArray::toMatND(int, bool) const in MxArray.o ... "cv::Mat::setTo(cv::_InputArray const&, cv::_InputArray const&)", referenced from: MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o "cv::Mat::zeros(cv::Size_<int>, int)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::Mat::create(int, int const*, int)", referenced from: MxArray::toMat(int, bool) const in MxArray.o "cv::Mat::copySize(cv::Mat const&)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o MxArray::toMat(int, bool) const in MxArray.o MxArray::toMatND(int, bool) const in MxArray.o std::__1::vector<cv::Mat, std::__1::allocator<cv::Mat> > MxArray::toVector<cv::Mat>() const in MxArray.o std::__1::vector<cv::Mat, std::__1::allocator<cv::Mat> >::__swap_out_circular_buffer(std::__1::__split_buffer<cv::Mat, std::__1::allocator<cv::Mat>&>&) in MxArray.o void std::__1::vector<cv::Mat, std::__1::allocator<cv::Mat> >::__push_back_slow_path<cv::Mat>(cv::Mat&&) in MxArray.o ... "cv::Mat::Mat(int, int const*, int, void*, unsigned long const*)", referenced from: MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o MxArray::toMat(int, bool) const in MxArray.o MxArray::toMatND(int, bool) const in MxArray.o "cv::add(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_InputArray const&, int)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::blur(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, cv::Point_<int>, int)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::error(int, cv::String const&, char const*, char const*, int)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::merge(cv::_InputArray const&, cv::_OutputArray const&)", referenced from: MxArray::toMat(int, bool) const in MxArray.o "cv::split(cv::_InputArray const&, cv::_OutputArray const&)", referenced from: MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o "cv::String::deallocate()", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::String::allocate(unsigned long)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::Moments::Moments(double, double, double, double, double, double, double, double, double, double)", referenced from: MxArray::toMoments(unsigned long) const in MxArray.o "cv::compare(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, int)", referenced from: MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o "cv::inRange(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::noArray()", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::fastFree(void*)", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o _mexFunction in calcIIF.o cv::MatExpr::~MatExpr() in calcIIF.o std::__1::__vector_base<cv::Mat, std::__1::allocator<cv::Mat> >::~__vector_base() in calcIIF.o MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o MxArray::toMat(int, bool) const in MxArray.o MxArray::toMatND(int, bool) const in MxArray.o ... "cv::SparseMat::ptr(int, int, bool, unsigned long*)", referenced from: MxArray::toSparseMat() const in MxArray.o "cv::SparseMat::create(int, int const*, int)", referenced from: MxArray::toSparseMat() const in MxArray.o "cv::_InputArray::kind() const", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::_InputArray::getMat_(int) const", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::Mat::t() const", referenced from: MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o MxArray::toMat(int, bool) const in MxArray.o MxArray::toMatND(int, bool) const in MxArray.o "cv::Mat::mul(cv::_InputArray const&, double) const", referenced from: doWork(cv::_InputArray const&, cv::Size_<int>, int) in calcIIF.o "cv::Mat::convertTo(cv::_OutputArray const&, int, double, double) const", referenced from: MxArray::MxArray(cv::Mat const&, mxClassID, bool) in MxArray.o MxArray::toMat(int, bool) const in MxArray.o MxArray::toMatND(int, bool) const in MxArray.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Could you please help me with this.
The text was updated successfully, but these errors were encountered: