1. Home
  2. Dashboard
  3. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team
      4. Search Members
  4. Articles
    1. Liste funktionierender Drucker
  5. Linux Guides
    1. Homepage
    2. YouTube
    3. Telegram
    4. Community-Stammtisch
  6. Lexicon
    1. Last Changes
  7. Smart Search
  • Login
  • Register
  • Search
Allgemein
  • Everywhere
  • Allgemein
  • Articles
  • Pages
  • Forum
  • Lexikon
  • More Options
  1. Linux Guides Community
  2. Lexicon
  3. Allgemein

Make

  • Tuxine
  • June 20, 2026 at 8:12 PM
  • July 6, 2026 at 9:20 AM
  • 39 times viewed
  • Eintrag
  • Ratings 0
  • Make ist das klassische, seit 1977 bewährte Standard-Werkzeug zur Automatisierung des Kompilierungsprozesses unter Unix und Linux. Es liest eine vom Entwickler geschriebene Textdatei namens Makefile aus, in der genau festgelegt ist, welche Programmteile von welchen Quelldateien abhängen und mit welchen Compiler-Befehlen sie übersetzt werden müssen. Das Besondere an Make ist seine Effizienz: Es vergleicht die Zeitstempel der Dateien und kompiliert bei Änderungen nur die Komponenten neu, die tatsächlich modifiziert wurden – das spart enorm viel Zeit.

    Klick für mehr ...

    1 1 🛠️ MAKE (Der klassische Automatisierungs-Klassiker)

    2 1.1 🔬 DIE PHILOSOPHIE: ABHÄNGIGKEITEN IM GRIFF

    In großen C/C++-Projekten ist es ineffizient, bei jeder kleinen Änderung am Code das gesamte Programm von vorne zu kompilieren. Make löst dieses Problem durch ein System aus Zielen (Targets), Abhängigkeiten (Dependencies) und Befehlen (Commands).

    Die wichtigsten Merkmale im Überblick:

    • Inkrementelles Bauen:
      Ändert man in einem Projekt mit 1000 Dateien nur eine einzige Zeile in einer Quellcodedatei, erkennt Make das anhand des Zeitstempels. Beim nächsten Aufruf wird nur diese eine Datei neu kompiliert und das Programm neu zusammengelinkt.
    • Vielseitigkeit:
      Obwohl Make historisch für C/C++ entwickelt wurde, ist es sprachunabhängig. Es kann prinzipiell jede Aufgabe im Terminal automatisieren (z. B. das Erstellen von Dokumenten aus LaTeX, das Optimieren von Bildern oder das Ausführen von System-Backups).
    • Einfacher Aufruf:
      Für den Endanwender reduziert sich der gesamte, oft komplexe Bauprozess einer Software im Terminal auf ein einziges, kurzes Wort: make.

    3 1.2 📄 WIE SIEHT EINE MAKEFILE AUS?

    Die Steuerung von Make erfolgt über eine Datei mit dem exakten Namen Makefile (ohne Dateiendung) im Projektordner. Ihr Aufbau folgt immer dieser strengen Struktur:

    Code
    Ziel: Abhängigkeit1 Abhängigkeit2
    	Befehl_zum_Bauen
    Quote

    ⚠️ Die wichtigste Syntax-Falle in Linux:

    Die Einrückung vor dem Befehl_zum_Bauen muss zwingend ein echtes Tabulator-Zeichen (Tab) sein! Verwendet man stattdessen Leerzeichen, bricht Make sofort mit der Fehlermeldung missing separator ab.

    Ein simples, reales Beispiel für ein C-Programm: Code

    Code
    # Das Hauptziel (Target)
    mein_programm: main.o funktionen.o
    	gcc main.o funktionen.o -o mein_programm
    
    # Wie die einzelnen Objektdateien entstehen
    main.o: main.c
    	gcc -c main.c
    
    funktionen.o: funktionen.c
    	gcc -c funktionen.c
    
    # Ein Aufräum-Befehl (Phony Target)
    clean:
    	rm -f *.o mein_programm
    Display More

    4 1.3 🛠️ INSTALLATION UNTER DEN DISTRIBUTIONEN

    Make gehört zur absoluten Grundausstattung für Software-Entwickler und Systemadministratoren. Es ist meist Teil der Standard-Entwicklerpakete.

    Für Ubuntu / Debian / Linux Mint / Zorin OS:

    Code
    sudo apt install make
    # Oder das Gesamtpaket: sudo apt install build-essential

    Für Arch Linux:

    Code
    sudo pacman -S make
    # Oder das Gesamtpaket: sudo pacman -S base-devel

    Für Fedora:

    Code
    sudo dnf install make

    Für openSUSE (Tumbleweed & Leap):

    Code
    sudo zypper install make

    5 1.4 🕹️ WIE STEUERT MAN MAKE IM ALLTAG?

    Wenn du ein Projekt aus dem Internet herunterlädst, das auf Make setzt, steuerst du den Ablauf über einfache Terminalbefehle im Quelltext-Ordner:

    • Standard-Kompilierung:
      Sucht nach dem ersten Ziel in der Makefile (meistens all oder das Hauptprogramm) und baut es:

      Code
      make
    • Paralleles Kompilieren (Beschleunigung):
      Nutzt mehrere CPU-Kerne gleichzeitig. Das verkürzt die Wartezeit bei großen Projekten massiv (z. B. 4 Kerne nutzen):

      Code
      make -j4
    • Ein spezifisches Ziel ansteuern:
      Möchtest du beispielsweise die temporären Bau-Dateien löschen, rufst du das im Beispiel definierte clean-Ziel auf:

      Code
      make clean
    • Systemweite Installation:
      Kopiert die fertigen Binärdateien in die Systemordner (erfordert Root-Rechte):

      Code
      sudo make install

    6 1.5 🔄 ZUSAMMENSPIEL MIT CMAKE UND NINJA

    Make beißt sich mit moderneren Tools überhaupt nicht, sondern arbeitet Hand in Hand:

    • CMake ist der Generator:
      Er schreibt dir die oft komplizierten Makefiles vollautomatisch, basierend auf einer einfacheren CMakeLists.txt.
    • Ninja ist der Konkurrent:
      Es ist bei riesigen Projekten noch schneller als Make, liest aber keine klassischen Makefiles, sondern eigene build.ninja-Dateien.

    7 1.6 📝 FAZIT

    Auch nach fast fünf Jahrzehnten ist Make nicht aus der Linux-Welt wegzudenken. Es ist das Fundament, auf dem die meisten Open-Source-Projekte bis heute aufgebaut und verteilt werden. Für jeden Linux-Nutzer, der tiefer in das System eintauchen oder eigene Software kompilieren möchte, gehört das Prinzip von make und Makefile zum absoluten Grundwissen.

    • C/C++
There are currently no ratings for this Eintrag.
  • Previous entry Lynis
  • Next entry Malware
  • Changelog
  • PDF
25-linuxguides-png

Table of Contents

  • 1 1 🛠️ MAKE (Der klassische Automatisierungs-Klassiker)
  • 2 1.1 🔬 DIE PHILOSOPHIE: ABHÄNGIGKEITEN IM GRIFF
  • 3 1.2 📄 WIE SIEHT EINE MAKEFILE AUS?
  • 4 1.3 🛠️ INSTALLATION UNTER DEN DISTRIBUTIONEN
  • 5 1.4 🕹️ WIE STEUERT MAN MAKE IM ALLTAG?
  • 6 1.5 🔄 ZUSAMMENSPIEL MIT CMAKE UND NINJA
  • 7 1.6 📝 FAZIT

Categories

  1. 3D 6
  2. Allgemein 110
  3. Appimages 4
  4. Audio 35
  5. Bild - Anzeige, - Bearbeitung, Foto-Bearbeitung, Grafik-Bearbeitung, - Verwaltung, Techn. Zeichnen, 35
  6. Büro, Mail, Messenger, Drucker, Scanner, PDF, OCR, LaTex 28
  7. Browser 14
  8. Dateimanager 6
  9. Dateisysteme und dessen Verwaltung 7
  10. Datensicherung 9
  11. Desktop-Umgebungen 15
  12. Distributionen, Boot-Stick 84
  13. Editoren (Text, Quellcode,Markdown,Wiki,Autoren,Web) 11
  14. Fenstermanager 9
  15. Firewall - Datensicherheit 13
  16. Gaming unter Linux 12
  17. Hardware 28
  18. Installer 3
  19. Kernel 8
  20. Maker Community 9
  21. Netzwerk 36
  22. Python 10
  23. Packprogramme - Archivmanager, Synchronisierung 15
  24. Paketverwaltung 30
  25. Remote Verbindungen 5
  26. Sandbox Programme 6
  27. Schnittstellen 6
  28. Terminaleditoren 17
  29. Terminal - bzw. Konsolenbefehle u. Werkzeuge 64
  30. Video, Medienserver 11
  31. Videoplayer 8
  32. Virtualisierung und Container 17
  33. Windows Umgebung 15
  1. Privacy Policy
  2. Legal Notice
  1. Nutzungsbedingungen
Lexicon, developed by www.viecode.com
Powered by WoltLab Suite™