2015-12-17 31 views
18

Sto cercando di capire alcuni concetti di base, ma non riesco a capirli.Installazione di librerie C++ su OS X

Sono davvero confuso su cosa significa installare (penso che siano chiamate librerie) per C++. Sto cercando di installare OpenCV, ma non so cosa deve succedere per essere installato, come controllare, o cosa sia realmente OpenCV (è una libreria, un framework, qualcos'altro?).

La mia comprensione è che OpenCV (e altre librerie/framework) è distribuito come solo il codice sorgente in modo che sia in grado di funzionare su più piattaforme. Quindi, dopo averlo scaricato, devi costruirlo (non so cosa significhi costruire), e quindi collegare il compilatore con esso in modo che possa accedere ai file? Non so come si farebbe tutto questo, o davvero cosa significhi. Penso che molto di questo sia fatto da CMake, ma non so cosa faccia realmente CMake, come lo useresti, o come useresti la libreria/framework nel tuo codice. Inoltre, dove sarebbero installate le librerie come OpenCV, come sarebbe clang (o qualsiasi altro compilatore/linker) sapere dove trovarle, e che tipo di file sarebbero (.a, .dylib, .cpp, .hpp, eseguibili o una raccolta di tutto)? Questa struttura è specifica per C++ e OS X o è più diffusa?

Non sto cercando un tutorial su come installare OpenCV o altre librerie, ma sto cercando invece di imparare come funziona davvero così non avrò bisogno di tutorial in futuro.

+2

C'è molto da fare sulla tua domanda: devi imparare come compilare e collegare il codice C++, come usare le librerie di terze parti con C++, e quali sono gli strumenti di costruzione come 'cmake'. I concetti generali si applicano a C++ indipendentemente dall'implementazione o dalla piattaforma. Usando un IDE come XCode o Eclipse-CDT o Visual Studio maschera molti dettagli di livello inferiore (configura alcune impostazioni in una GUI e gli strumenti fanno il resto), ma la tua domanda è molto ampia e anche difficile da rispondere senza conoscendo il tuo livello di competenza in C++. – birryree

+0

Ti suggerisco di iniziare scrivendo una semplice applicazione "ciao mondo" nella lingua che vuoi utilizzare con OpenCV e con la piattaforma che intendi utilizzare. Successivamente leggi i dettagli su come ha funzionato. La cosa principale che devi sapere per chiarire il mistero è questa; i programmi sono compilati in singoli pezzi. I singoli pezzi vengono combinati in un'applicazione tramite il processo di "collegamento". Usare cose come OpenCV richiede che tu colleghi le parti del tuo programma con parti fatte da altri (come OpenCV). –

+0

Grazie per la rapida risposta. Ho usato librerie di terze parti con successo con C++ in passato, ma non sapevo cosa stava succedendo "sotto il cofano" perché cose come pkg-config hanno fatto il lavoro sporco per me. Non ho mai usato un IDE con C++ perché mi sembrano più confusi da principianti che usare un editor di testo e imparare cosa sta facendo l'IDE. Il mio più grande problema finora è stato che tutte le risorse che ho trovato non discutono di ciò che sta accadendo a basso livello e, di conseguenza, non so come espandere semplici programmi di Hello World a cose più grandi e più utili. –

risposta

35

Prima di poter fare qualsiasi C/C++ lavoro di sviluppo su un Mac, è necessario andare ad App Store e scaricare Xcode gratis - è IDE di Apple - Integrated Development Environment. Senza Xcode, non si avrà alcun compilatore (ad esempio clang o gcc o g++) e nessun tool di compilazione, (ad esempio make).

Installare Xcode

Se siete totalmente nuovo per Mac, App Store assomiglia a questo:

enter image description here

e Xcode si presenta così:

enter image description here

Installare Command Line Tools

successivo è necessario installare gli strumenti della riga di comando di Xcode, in modo da iniziare un Terminale - premendo + SPACE e iniziando a digitare Terminal e quando indovina correttamente, basta premere Enter/Restituire. Copia e incolla quanto segue nel terminale e premi Inserisci/Ritorna.

xcode-select --install 

Quanto sopra è chiamato "Ricerca Spotlight" ed è il modo più semplice per trovare qualsiasi cosa su un Mac.

Installare homebrew

Poi, se si desidera installare OpenCV su un Mac, installare un gestore di pacchetti come homebrew che è una questione di copiare e incollare una singola linea dal homebrew website nel vostro terminale. Non mostrerò la riga qui nel caso in cui dovesse mai cambiare e qualcuno la guardi tra qualche anno, ma è facile vedere se vai al link sopra.

trovare pacchetti

Quindi è possibile trovare tutti i pacchetti che desiderate con:

brew search opencv # Look for packages called "opencv" 

o

brew search boost  # Look for "boost" libraries 

Installare OpenCV

Così, per una vaniglia (senza opzioni speciali) l'installazione e la build di OpenCV fanno questo:

brew install opencv 

rimuovere i pacchetti

È possibile successivamente rimuovere tutti i pacchetti non si desidera più con:

brew rm opencv 

Aggiorna pacchetti

È anche possibile Data tutti i pacchetti installati con:

brew update && brew upgrade && brew cleanup 

costruire un progetto

volta che avete ottenuto è installato, è possibile iniziare a compilare e costruire il proprio progetto con un comando molto semplice come:

g++ $(pkg-config --cflags --libs opencv) process.cpp -o process 

Quindi è possibile continuare a utilizzare l'IDE Xcode in un secondo momento se si desidera una volta che si inizia.

Build with Xcode

volta che avete ottenuto iniziare con la compilazione di base, si consiglia di iniziare a utilizzare Xcode per modificare i programmi, per farlo, è necessario indicare Xcode in cui i file di intestazione sono e anche dove le librerie sono e quali librerie collegare. Ciò varierà con la tua versione OpenCV, ma dovrai modificare i luoghi indicati nei due schemi seguenti. Li troverai facilmente se li clicchi in ordine - prima area verde, poi gialla, poi blu, poi rossa.

enter image description here

enter image description here

Le informazioni effettive che avrà bisogno di andare nelle zone impostazioni Xcode Ho segnato sopra possono essere trovati eseguendo lo stesso comando di pkg-config ho suggerito nel paragrafo precedente. Quindi eseguire:

pkg-config --cflags opencv 

per ottenere la posizione della testata (include) file, e quindi eseguire

pkg-config --libs opencv 

per ottenere le informazioni necessarie a compilare per il linker in Xcode.

+0

Grazie per la guida. Sarò sicuro di provare Xcode come IDE. L'ho usato in passato, ma solo come editor di testo perché speravo di imparare come il codice è stato costruito da zero, ma forse non è pratico. Sono davvero alla ricerca di informazioni su come funziona il processo di installazione e su cosa sia effettivamente un pacchetto come opencv (è una libreria, un framework o qualcos'altro?). –

+0

Ciao, risposta molto dettagliata, grazie per quello. Ti dispiacerebbe dirmi perché pkg-config --cflags opencv e pkg-config --libs opencv non funzionano per la libreria FFMPEG? – cmario

+0

'pkg-config ... opencv' vi dirà i flag/le impostazioni per la creazione del pacchetto' opencv'. Se vuoi creare un pacchetto diverso, come 'ffmpeg', dovrai trovare il pacchetto (probabilmente usando' pkg-config --list-all') e poi, quando trovi il nome del pacchetto che vuoi, (ad es. 'ffmpeg'), puoi quindi usare' pkg-config --cflags --libs ffmpeg' o simile. –