Come si usa CMake?


102

Sto cercando di utilizzare CMake per compilare opencv.

Sto leggendo il tutorial ma non riesco a capire cosa sono i file CMakeLists e come sono collegati alla GUi di CMake?

Inoltre non riuscivo a capire cosa sono i makefile, sono gli stessi di CMakeLists?

E quale file è che alla fine apro con visual-studio?


Se la domanda è relativa a Windows, dovrebbe essere menzionata (magari con un windowstag)
Basile Starynkevitch

Per quanto riguarda CMake 3.13.3, piattaforma Windows e IDE Visual Studio 2017, suggerisco: wikihow.com/Use-CMake Saluti.
George Theodosiou

Risposte:


30

CMake prende un file CMakeList e lo invia in un formato di build specifico della piattaforma, ad esempio un Makefile, Visual Studio, ecc.

Prima esegui CMake su CMakeList. Se utilizzi Visual Studio, puoi caricare il progetto / soluzione di output.


2
Cos'è il Makefile? Dove trovo il file di progetto / soluzione per visualstudio?
lital maatuk

3
Dopo aver eseguito cmake (o CMakeSetup e premuto generate), dovresti essere in grado di trovare il Makefile (se unix) oi file di progetto da qualche parte nell'albero del progetto. La posizione può essere specificata in CMakeList. Ecco una breve presentazione che ho trovato sul wiki di CMake che potresti trovare utile: elpauer.org/stuff/learning_cmake.pdf
holtavolt

2
CMake configura l'intero progetto utilizzando un formato di compilazione di tua scelta, il che significa che imposta tutto in modo che tu possa usare, ad esempio, Visual Studio per la compilazione. Per impostazione predefinita (almeno su Linux), crea un progetto che utilizza invece Make. Make viene utilizzato per costruire effettivamente il progetto, non per configurarlo o impostarlo. Quindi prima dovresti usare CMake per impostare il progetto, quindi eseguire Make per compilare e creare cose.
leinaD_natipaC

156

Non so di Windows (non l'ho mai usato), ma su un sistema Linux devi solo creare una directory di build (nella directory dei sorgenti in alto)

mkdir build-dir

andateci dentro

cd build-dir

quindi esegui cmakee punta alla directory padre

cmake ..

e finalmente corri make

make

Si noti che makee cmakesono programmi diversi. cmakeè un Makefilegeneratore e l' makeutilità è governata da un Makefilefile di testo. Vedi le pagine di cmake & make wikipedia.

NB: su Windows, cmakepotrebbe funzionare, quindi potrebbe essere necessario utilizzarlo in modo diverso. Avrai bisogno di leggere la documentazione (come ho fatto per Linux)


Qual'è la differenza tra cmake e make? sono programmi diversi?
lital maatuk

4
Bella risposta; Non sono riuscito a capire come ottenere i file di build in una sottodirectory. Non capisco perché la documentazione ufficiale non lo menziona.
TheBigB

Funziona sotto Linux, ma su Windows si interrompe quando rileva il compilatore C / C ++. Qualche idea su come farlo?
bartlomiej.n

Dipende da come si particolare computer è configurato. Verifica che la tua PATHvariabile sia corretta. A proposito, non ho mai usato Windows in vita mia (e ho scritto il mio primo programma nel 1974)
Basile Starynkevitch

2
Così tanti voti positivi e la risposta non dice nulla su Visual Studio.
Abyx

10

Sì, cmake e make sono programmi diversi. cmakeè (su Linux) un generatore di Makefile (e Makefile -s sono i file che guidano l' makeutilità). Esistono altri generatori di Makefile (in particolare configure e autoconf ecc ...). E puoi trovare altri programmi di automazione della build (ad esempio ninja ).


Penso che questo sia un po 'confuso. cmake è un generatore di sistemi di compilazione e una delle cose che può generare sono i makefile (come in gnu.org/software/make ). Ci sono molti altri sistemi che può generare, però, e non sono "generatori di Makefile". Su macos (e probabilmente ovunque), se esegui cmake --help, ti darà una lunga lista dei generatori che ha. Ad esempio, cmake può generare progetti Xcode - niente a che fare con make.
James Moore,

0

Per quanto riguarda CMake 3.13.3, piattaforma Windows e IDE Visual Studio 2017, suggerisco questa guida . In breve suggerisco:
1. Scarica cmake> unzip it> eseguilo.
2. Come esempio scaricare GLFW> decomprimerlo> creare nella cartella Build .
3. In cmake Browse "Source"> Browse "Build"> Configure and Generate.
4. In Visual Studio 2017 crea la tua soluzione.
5. Ottieni i binari.
Saluti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.