Vai al contenuto

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]