Fare il Cheatsheet
Panoramica
GNU Make è uno strumento di automazione di costruzione che costruisce automaticamente programmi eseguibili e librerie dal codice sorgente leggendo i file chiamati Makefiles che specificano come derivare il programma di destinazione.
Concetti di base
Struttura del Makefile
Traduzione:
Termini chiave
Traduzione:
Makefile di base
Esempio semplice
Traduzione:
Con Variabili
Traduzione:
Variabili
Definizione variabile
Traduzione:
Variabili integrati
__CODE_BLOCK_5_makefile target: dipendenze comando comando Traduzione: Target # File da creare o da eseguire Dipendenza # File che il target dipende da Ricetta # Comandi per creare target Regola # Obiettivo + dipendenze + ricetta Variabile # Valore nominale che può essere riutilizzato __CODE_BLOCK_7_makefile
Semplice programma C
programma: main.o utils.o gcc -o programma main.o utils. o
main.o: main.c gcc -c principale. C
utils.o: utils.c gcc -c utils. C
pulito: rm -f *.o programma __CODE_BLOCK_8_makefile CC = gcc CFLAGS = -Wall -g OBJECTS = main.o utils.o TARGET = programma
$(TARGET): $(OBJECTS) $(CC) -o $(TARGET) $(OBJECTS)
main.o: main.c $(CC) $(CFLAGS) -c principale. C
utils.o: utils.c $(CC) $(CFLAGS) -c utils. C
pulito: rm -f $(OBJECTS) $(TARGET)
. PHONY: pulito __CODE_BLOCK_9_makefile
Semplice assegnazione
CC = gcc CFLAGS = -Wall -g
Assegnazione ricorsiva (valutata quando utilizzata)
SOURCES = $(wildcard *.c)
Semplice assegnazione (valutata immediatamente)
OBIETTIVI := $(SOURCES:.c=.o)
Assegnazione condizionale (solo se non già definita)
CC?= g.
Allegato alla variabile
Traduzione: - O2 Traduzione:
Variabili dell'ambiente
Traduzione:
Regole del modello
Modelli di base
Modelli avanzati
Traduzione:
Funzioni
Funzioni di stringa
Traduzione:
Funzioni di file
Traduzione:
Funzioni condizionali
Traduzione:
Dichiarazioni condizionali
segg.
Traduzione:
sedef/ifndef
Traduzione:
Assegnazione condizionale
Traduzione:
Caratteristiche avanzate
Includere i file
Traduzione:
Generazione della dipendenza
Traduzione:
Prerequisiti dell'ordine
Traduzione:
Obiettivi di Phony
Obiettivi comuni di fionia
Traduzione:
Costruzioni multi-target
Programmi multipli
Traduzione:
Edificio della biblioteca
Traduzione:
Uso della linea di comando
Comandi di base
Traduzione:
Debug
Traduzione:
Esempi complessi
C++ Progetto
Traduzione:
Progetto multidirezionale
Traduzione:
Migliori Pratiche
Organizzazione di Makefile
Traduzione:
Gestione degli errori
Traduzione:
Consigli sulle prestazioni
Traduzione:
Integrazione
Con il controllo della versione
Traduzione:
Con i gestori di pacchetti
Risoluzione dei problemi
Questioni comuni
Traduzione:
Consigli per il debug
Traduzione:
Risorse
- ** Manuale ufficiale**: [gnu.org/software/make/manual](LINK_4
- GNU Make: [gnu.org/software/make](LINK_4
- [makefiletutorial.com](__LINK_4___]
- [clarkgrubb.com/makefile-style-guide](LINK_4]