xcode 编译opencv ios容易出现的错误
(1)出现 "std::__1::basic_ostream<char, std::__1::char_traits<char> >::flush()"之类的错误
Undefined symbols for architecture i386: "std::__1::basic_ostream<char, std::__1::char_traits<char> >::flush()", referenced from: cv::gpu::error(char const*, char const*, int, char const*) in opencv2(gpumat.o) "std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from: std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<< <std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in opencv2(gpumat.o) "std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::~sentry()", referenced from: std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<< <std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in opencv2(gpumat.o) "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(int)", referenced from: cv::gpu::error(char const*, char const*, int, char const*) in opencv2(gpumat.o) "std::__1::cerr", referenced from:
解决办法是加入c++库 ,想项目中加入libc++.dylib
- Select your project (the blue file) in your project navigator (Command 1 if it's hidden)
- Select your target
- Go to Build Phases
- Expand "Link Binary With Libraries"
- Click the "+"
- Type libc++.dylib in the search bar.
- Select the libc++.dylib file and press "Add"
(2)出现下面错误
"_CVPixelBufferGetBaseAddress", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_CVPixelBufferUnlockBaseAddress", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_CVPixelBufferLockBaseAddress", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_CMSampleBufferGetImageBuffer", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_CVPixelBufferGetHeight", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_kCVPixelBufferPixelFormatTypeKey", referenced from: _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr in MainViewController.o (maybe you meant: _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr) "_CVPixelBufferGetWidth", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_CVPixelBufferGetBytesPerRow", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o "_CMTimeMake", referenced from: -[MainViewController setupCaptureSession] in MainViewController.o "_CVPixelBufferGetDataSize", referenced from: -[MainViewController imageFromSampleBuffer:] in MainViewController.o
解决方法是添加 AVFoundation , CoreVideo 和 CoreMedia frameworks
(3)出现下面错误assert错误时,需要添加AssetsLibrary.framework