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]