Benutzer:SucramZ/CMake
CMake
[Bearbeiten]Kurzübersicht Makfiles
[Bearbeiten]Makefiles sind Steuerdateien zum erstellen von Programmen. Bei großen Projekten werden Makefiles sehr schnell unübersichtlich und Makefiles sind zudem nicht komplett plattformunabhängig.
Makefiles bestehen aus so genannten Targets. Ein Target ist ein
myProg : main.o foo.o
g++ -o myProg main.o foo.o
main.o : main.cpp
g++ -c main.cpp
foo.o : foo.cpp
g++ -c foo.cpp
Dies ist ein Beispeil-Makefile, das ein Programm (myProg) aus den beiden C++ Quelltext-Dateien main.cpp und foo.cpp erstellt. myProg hängt von main.o und foo.o ab. Existiert keine dieser Dateien beim Erstellen von myProg werden die entsprechenden Targets aufgerufen.
Ein weiterer Vorteil bei Make ist, dass Targets nur neu erstellt werden, wenn die Abhängigkeiten neuer sind als das Target. Ändern wir in dem obigen Beispiel die Datei foo.cpp und wollen myProg neu kompilieren wird nur foo.o neu kompiliert und mit dem schon bestehenden main.o gelinkt.
CMaake ist ein Programm zum automatischen Erstellen dieser Makefiles und ähnlicher Konzepte wie Projektdateien für Visual Studio etc.