2013-07-18 5 views
5

Dopo aver aggiornato la versione openCV su un progetto iOS esistente, ottengo i seguenti problemi. Ho provato a giocare con la versione del compilatore e alcune altre impostazioni, ma non ho trovato una soluzione.Errori del compilatore dopo l'aggiornamento a Opencv 2.4.5 su iOS. C'è una soluzione rapida a questi problemi?

Grazie.

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

Questo può accadere quando OpenCV è costruito con una libreria standard diversa da quella utilizzata dal progetto. Prova a cambiare il valore del campo 'Libreria standard C++' in XCode. (Ad esempio, se è 'libC++', cambialo in 'libstdC++', o viceversa.) – Aurelius

+0

[Questa risposta] (http://stackoverflow.com/a/15072028/1601291) potrebbe essere utile. – Aurelius

+0

Grazie, l'ho provato e ricevo ancora alcuni messaggi su cv :: split e cv :: putText ... Simboli indefiniti per l'architettura armv7: "cv :: split (cv :: Mat const &, std :: vector > &) ", referenziato da: ... – user2597120

risposta

2

mi è stato accidentalmente incluso il file eseguibile OpenCV Unix al posto del quadro (nei quadri legati e le librerie sezione). Dovevo anche includere il file libC++. Dylib come menzionato in this answer.

+0

Su ulteriore revisione, questo non ha funzionato. Sono stato accidentalmente collegato alla vecchia versione openCV 2.3.3. Ottengo gli stessi errori di collegamento (cv :: split e cv :: putText) non definiti quando provo il framework 2.4.5 o 2.4.6. – user2597120

+0

Il link: "La risposta" mi ha portato alla soluzione. Grazie! – xarly

Problemi correlati