2013-03-04 109 views
4

我在集成opencv2.framework時面臨這個錯誤,任何人都可以幫助解決這個問題。 我的Xcode版本是4.5。關於集成OpenCV框架的架構armv7的未定義符號

Undefined symbols for architecture armv7: 
    "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: 
     cv::Exception::Exception(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in opencv2(system.o) 
     cv::Exception::Exception(cv::Exception const&) in opencv2(system.o) 
    "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from: 
     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&) in opencv2(matrix.o) 
     cv::Mat::Mat(cv::Mat const&, cv::Range const*) in opencv2(matrix.o) 
     cv::Mat::diag(int) const in opencv2(matrix.o) 
     cv::Mat::Mat(_IplImage const*, bool) in opencv2(matrix.o) 
     cv::Mat::reserve(unsigned long) in opencv2(matrix.o) 
     ... 
    "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const*, unsigned long)", referenced from: 
     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&) in opencv2(matrix.o) 
     cv::Mat::Mat(cv::Mat const&, cv::Range const*) in opencv2(matrix.o) 
     cv::Mat::diag(int) const in opencv2(matrix.o) 
     cv::Mat::Mat(_IplImage const*, bool) in opencv2(matrix.o) 
     cv::Mat::reserve(unsigned long) in opencv2(matrix.o) 
     ... 
    "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from: 
     std::__1::vector<cv::Vec<int, 128>, std::__1::allocator<cv::Vec<int, 128> > >::__append(unsigned long) in opencv2(matrix.o) 
     std::__1::vector<cv::Vec<int, 64>, std::__1::allocator<cv::Vec<int, 64> > >::__append(unsigned long) in opencv2(matrix.o) 
     std::__1::vector<cv::Vec<int, 32>, std::__1::allocator<cv::Vec<int, 32> > >::__append(unsigned long) in opencv2(matrix.o) 
     std::__1::vector<cv::Vec<int, 16>, std::__1::allocator<cv::Vec<int, 16> > >::__append(unsigned long) in opencv2(matrix.o) 
     std::__1::vector<cv::Vec<int, 12>, std::__1::allocator<cv::Vec<int, 12> > >::__append(unsigned long) in opencv2(matrix.o) 
     std::__1::vector<cv::Vec<int, 9>, std::__1::allocator<cv::Vec<int, 9> > >::__append(unsigned long) in opencv2(matrix.o) 
     std::__1::vector<cv::Vec<int, 8>, std::__1::allocator<cv::Vec<int, 8> > >::__append(unsigned long) in opencv2(matrix.o) 
     ... 
    "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: 
     cv::Exception::formatMessage() in opencv2(system.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

回答

1

看起來該框架未編譯爲支持arm7。它需要使用當前的Xcode進行編譯,以便它可以定位必要的體系結構。

您是從源代碼編譯還是依賴於現有的二進制文件?

嘗試使用這個Git倉庫源:https://github.com/jonmarimba/OpenCV-iOS

13

你只需要添加到您的「鏈接的框架和庫」

+0

你讓我很快樂「的libC++ dylib。」! – ozgur 2015-08-19 17:42:34

相關問題