Ho un progetto opencv che ho sviluppato sotto ubuntu 12.04, su un VM parellels su un mac che ha un'architettura x86_64. Ci sono stati molti problemi di prestazioni di commutazione dello schermo che credo siano dovuti alla VM, in cui le modalità video di Linux girano intorno per un paio di secondi mentre l'accesso alla telecamera è fatto dall'applicazione opencv. Ho deciso di spostare il progetto in Xcode sul lato mac del computer per continuare lo sviluppo di opencv. Tuttavia, non sono così familiare con xcode e sto avendo problemi a far funzionare correttamente il progetto lì.compiling opencv 2.4 su un mac 64 bit in Xcode
Ho installato xcode. Ho scaricato e decompresso l'ultima versione di opencv su mac, e ho eseguito: ~/src/opencv/build/cmake-gui -G Xcode .. secondo le istruzioni di willowgarage e varie altre posizioni. Questo sembra funzionare bene (comunque mi chiedo ora se mi manca un'impostazione di architettura qui, anche se è intel a 64 bit in Xcode). Poi ho impostato un progetto xcode con i file sorgente dal progetto linux e ho cambiato le directory di inclusione per usare/opt/local/include/... piuttosto che/usr/local/include/... Ho cambiato xcode in utilizzare il compilatore GV LLVM nelle impostazioni di compilazione per il progetto quindi impostare la finestra di dialogo Apple LLVM per C++ in dialetto di lingua su GNU ++ 11 (che sembra possibilmente incoerente con la riga precedente)
Non sto utilizzando un makefile in Xcode, (che io sappia - ha un proprio file di progetto ...)
sono stato anche in esecuzione in un problema di linker che sembrava che possono essere risolti con l'aggiunta di questo flag del linker:
-lopencv_video
basato su un messaggio simile qui: other thread tuttavia in quel caso la persona stava usando un Makefile nel loro progetto.
Ho provato ad aggiungere questo flag linker sotto "Altri linker flag" nelle impostazioni di generazione xcode, ma ottengo ancora errori di compilazione.
Penso che potrei avere due problemi qui, uno con le impostazioni dell'architettura quando si costruiscono le librerie opencv con Cmake e uno con le impostazioni del linker nel mio progetto.
Attualmente la lista errore di generazione si presenta così:
Undefined symbols for architecture x86_64:
"cv::_InputArray::_InputArray(cv::Mat const&)", referenced from:
_main in main.o
"cv::_OutputArray::_OutputArray(cv::Mat&)", referenced from:
_main in main.o
"cv::Mat::deallocate()", referenced from:
cv::Mat::release() in main.o
"cv::Mat::copySize(cv::Mat const&)", referenced from:
cv::Mat::Mat(cv::Mat const&)in main.o
cv::Mat::operator=(cv::Mat const&)in main.o
"cv::Mat::Mat(_IplImage const*, bool)", referenced from:
_main in main.o
"cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
_main in main.o
---SNIP---
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Qualcuno può fornire alcune indicazioni su cosa provare dopo?
Grazie, Walt
Grazie mille ... questo ha risolto il mio problema ... il problema era con "C++ Std Library". Di default era "libC++". Cambiarlo in "libstdC++" ha funzionato. Grazie mille ancora una volta – tez
Un ottimo tutorial mi ha portato oltre la maggior parte degli altri. Qualche modifica è cambiata con xcode 5 e OpenCV 2.4.6.1? Ottengo alcuni errori durante l'installazione di make sudo ma cercherò di rintracciarli da soli. Grazie! –
In base a questo commento (http://stackoverflow.com/questions/14030546/linker-errors-after-upgrading-xcode-to-4-5-2-and-opencv-to-2-4-3/15662948# comment28843244_15662948), sì, ci sono cambiamenti. "Con OpenCV 2.4.6, Xcode 5, LLVM 5.0 e 10.8.5, dovevo impostare sia il dialetto che la libreria std (passo 8) su" Compilatore predefinito ", altrimenti vedrei errori di linker (mi sono lamentato di imwrite in particolare) o mancante. " Ho aggiornato la risposta. Spero che funzioni per te. –
moubarak