Vai al contenuto

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

Makefile Structure

Traduzione:

Termini chiave

Traduzione:

Makefile di base

Esempio semplice

Traduzione:

Con variabili

Traduzione:

Variabili

Variabile Definizione

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 C programma di costruzione

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 ricorrente (valutata quando utilizzata)

SOURCES = $(wildcard *.c)

Semplice assegnazione (valutata immediatamente)

OBIETTIVI := $(SOURCES:.c=.o)

Incarico condizionale (solo se non già definito)

CC?= g.

Allegato alla variabile

Traduzione: - O2 Traduzione:

Variabili ambientali

Traduzione:

Regole del modello

Modelli di base

Modelli avanzati

Traduzione:

Funzioni

String Functions

Traduzione:

Funzioni di file

Traduzione:

Funzioni condizionali

Traduzione:

Dichiarazioni condizionali

ifeq/ifneq

Traduzione:

ifdef/ifndef

Traduzione:

Assegnazione condizionale

Traduzione:

Caratteristiche avanzate

Include file

Traduzione:

Dependance Generation

Traduzione:

Ordine-Only Prerequisiti

Traduzione:

Obiettivi di Phony

Common Phony Targets

Traduzione:

Multi-Target Builds

Programmi multipli

Traduzione:

Library Building

Traduzione:

Linea di comando Utilizzo

Comandi di base

Traduzione:

Debugging

Traduzione:

Esempi complessi

C++ Progetto

Traduzione:

Multi-Directory Project

Traduzione:

Migliori Pratiche

Makefile Organization

Traduzione:

Gestione degli errori

Traduzione:

Traduzione:

Integrazione

Con il controllo della versione

Traduzione:

With Package Managers

Risoluzione dei problemi

Questioni comuni

Traduzione:

Debugging Suggerimenti

Traduzione:

Risorse