2013-07-18 8 views
5

Po aktualizacji wersji openCV do istniejącego projektu iOS pojawia się następujący problem. Próbowałem odtwarzać z wersji kompilatora i niektórych innych ustawień, ale nie znalazłem rozwiązania.Błędy kompilatora po aktualizacji do Opencv 2.4.5 na iOS. Czy istnieje szybka naprawa tych problemów?

Dzięki.

Ld /Users/_____/Library/Developer/Xcode/DerivedData/_____-czzcfkvvtejzzacaookbbwcmfsdh/Build/Products/Debug-iphoneos/_____.app/_____ normal armv7 
cd /Users/________/Desktop/________NewOpenCV 
setenv IPHONEOS_DEPLOYMENT_TARGET 5.0 
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/_____/Library/Developer/Xcode/DerivedData/________-czzcfkvvtejzzacaookbbwcmfsdh/Build/Products/Debug-iphoneos -L/Users/________/Desktop/________NewOpenCV/../../Downloads/opencv2.framework/Versions/A -F/Users/________/Library/Developer/Xcode/DerivedData/________-czzcfkvvtejzzacaookbbwcmfsdh/Build/Products/Debug-iphoneos -F/Users/________/Desktop/________NewOpenCV -F/Users/________/Desktop/________NewOpenCV/../../Downloads/aptogo-OpenCVForiPhone-cb262eb -F/Users/________/Desktop/________NewOpenCV/../../Downloads -filelist /Users/________/Library/Developer/Xcode/DerivedData/________-czzcfkvvtejzzacaookbbwcmfsdh/Build/Intermediates/________.build/Debug-iphoneos/________.build/Objects-normal/armv7/________.LinkFileList -dead_strip -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=5.0 /Users/________/Desktop/________NewOpenCV/../../Downloads/opencv2.framework/Versions/A/opencv2 -framework CoreMotion -framework AudioToolbox -framework CoreLocation -lz.1.2.5 -framework ExternalAccessory -framework CFNetwork -framework SystemConfiguration -framework MobileCoreServices -framework AVFoundation -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/________/Library/Developer/Xcode/DerivedData/________-czzcfkvvtejzzacaookbbwcmfsdh/Build/Products/Debug-iphoneos/________.app/________ 

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::error(cv::Exception const&) in opencv2(system.o) 
    _cvRegisterModule in opencv2(system.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) 
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const*, unsigned long)", referenced from: 
    cv::medianBlur(cv::_InputArray const&, cv::_OutputArray const&, int) in opencv2(smooth.o) 
    cv::Mat::create(int, int const*, int) in opencv2(matrix.o) 
    cv::setSize(cv::Mat&, int, int const*, unsigned long const*, bool) 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) 
    ... 
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from: 
    cv::medianBlur(cv::_InputArray const&, cv::_OutputArray const&, int) in opencv2(smooth.o) 
    cv::Mat::create(int, int const*, int) in opencv2(matrix.o) 
    cv::setSize(cv::Mat&, int, int const*, unsigned long const*, bool) 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) 
    ... 
"std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from: 
    cv::medianBlur(cv::_InputArray const&, cv::_OutputArray const&, int) in opencv2(smooth.o) 
    std::__1::vector<int, std::__1::allocator<int> >::__append(unsigned long) in opencv2(smooth.o) 
    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) 
    ... 
"cv::split(cv::Mat const&, std::vector<cv::Mat, std::allocator<cv::Mat> >&)", referenced from: 
    GetRegionContoursLDC(cv::Mat&, double, double, double, double, int, std::vector<std::vector<cv::Point_<int>, std::allocator<cv::Point_<int> > >, std::allocator<std::vector<cv::Point_<int>, std::allocator<cv::Point_<int> > > > >&) in GetRegionContoursLDC.o 
"cv::putText(cv::Mat&, std::string const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)", referenced from: 
    -[NotesUploaderViewController addMotionDetails:] in NotesUploaderViewController.o 
    -[NotesUploaderViewController addArea:atPoint:onto:] in NotesUploaderViewController.o 
    -[NotesUploaderViewController addMeasureLine:toPoint:usingScale:onto:] in NotesUploaderViewController.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+1

Może się to zdarzyć, gdy OpenCV jest zbudowany z inną biblioteką standardową niż ta, z której korzysta twój projekt. Spróbuj zmienić wartość pola 'Standardowa biblioteka C++ 'w XCode. (jeśli jest to "libC++", zmień go na "libstdC++" lub na odwrót). – Aurelius

+0

[Ta odpowiedź] (http://stackoverflow.com/a/15072028/1601291) może być również pomocna. – Aurelius

+0

Dzięki temu próbowałem i nadal otrzymuję kilka wiadomości o cv :: split i cv :: putText ... Undefined symbols for architecture armv7: "cv :: split (cv :: Mat const &, std :: vector > &) ", do którego odwołuje się: ... – user2597120

Odpowiedz

2

Przypadkowo włączyłem plik wykonywalny OpenCV Unix zamiast frameworka (w połączonych sekcjach bibliotek i frameworków). Musiałem również dołączyć plik libC++. Dylib, o którym mowa w this answer.

+0

Po dalszym przeglądzie nie zadziałało. Przypadkowo powracałem do starej wersji OpenCV 2.3.3. Otrzymuję te same błędy linków (niezdefiniowane cv :: split i cv :: putText), gdy próbuję framework 2.4.5 lub 2.4.6. – user2597120

+0

Link: "Odpowiedź" zabrała mnie do rozwiązania. Dzięki! – xarly

Powiązane problemy