QNA > Q > Qual È La Differenza Tra Cmake E Make?

Qual è la differenza tra CMake e Make?

Perché abbiamo bisogno di Make?

In un progetto, a volte il numero di file di codice sorgente potrebbe superare i 1000. In questi casi, è un lavoro molto impegnativo tenere traccia di tutte le dipendenze. Inoltre, il processo di compilazione in questi casi richiede molto tempo, a volte più di un'ora. Perché, ogni volta che modifichiamo anche un solo file, dobbiamo compilare e collegare tutti i file dall'inizio, il che è un processo che richiede molto tempo.

In tal caso, se abbiamo accesso a una rappresentazione ad albero di tutte le dipendenze, e una lista di file che abbiamo cambiato dall'ultima compilazione riuscita, allora, possiamo scegliere di compilare solo i file che abbiamo cambiato e poi collegare tutti quelli insieme.

main-qimg-d8b39ee68176342be202979cb7eb6d4c

Questo ci farebbe risparmiare una quantità significativa di tempo, dato che, di solito, pochi file vengono cambiati in 1 volta.

Come possiamo risolvere questo problema?

Make, Ninja, Ant, Gradle, MSVC sono alcuni dei sistemi di costruzione. Per costruire un progetto, lo sviluppatore scrive un codice speciale in 'build file', che è diverso dal codice sorgente del progetto. Questo file di build contiene le informazioni sull'albero delle dipendenze; e il sistema di build usa quel file di build per compilare e collegare i codici sorgente. Nel caso di 'Make' sistema di compilazione, lo sviluppatore scrive un 'makefile' per costruire il progetto.

Che cos'è CMake?

CMake è un sistema di meta-costruzione o un generatore di sistemi di compilazione. Lo strumento CMake è in grado di scrivere il makefile per noi.

Perché abbiamo bisogno di imparare questo nuovo strumento 'CMake' per questa semplice applicazione?

La costruzione di progetti C++ non è standard in tutte le piattaforme. Questo significa che, anche se avete il codice sorgente e il makefile di un progetto C++ dalla vostra macchina Linux, non potete costruire direttamente quel codice nel sistema operativo Windows. Allo stesso modo, se avete una soluzione di Visual Studio dalla macchina Windows, non potete direttamente compilarla in ambiente Linux. CMake è in grado di risolvere questo problema creando i file del sistema di compilazione basati sulla piattaforma impostando alcuni flags.

Questo significa che, una volta che avete condiviso i codici del vostro progetto con qualcuno che può essere compilato usando CMake, non dovete preoccuparvi del loro ambiente di sviluppo. CMake si occuperà di questo.

Nel caso in cui vogliate imparare lo strumento CMake, ho fatto una serie di lezioni chiamate 'Master CMake for Cross-Platform C++ Project Building[1]' per principianti assoluti.

Potete anche visitare questo video su YouTube per un'anteprima.

Note

[1] Tutorial CMake per principianti

Di Stubbs Paukner

Perché i touchpad dei laptop fanno male alle mani? :: Quando la tastiera di un portatile va male, è meglio sostituire il portatile o le nuove tastiere di solito risolvono il problema?
Link utili