Maison >développement back-end >C++ >Comment créer un Makefile C simple pour un projet à fichier unique ?

Comment créer un Makefile C simple pour un projet à fichier unique ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-08 03:48:10972parcourir

How to Create a Simple C   Makefile for a Single-File Project?

Comment créer un Makefile C SIMPLE

Problème :
Nous devons créer un Makefile pour gérer notre projet C, mais on ne nous a pas appris comment le faire. Le projet se compose d'un seul fichier, a3driver.cpp, qui importe une classe depuis /user/cse232/Examples/example32.sequence.cpp.

Solution :

1. Makefile de base :

a3a.exe: a3driver.cpp example32.sequence.cpp
    g++ -g -o a3a.exe a3driver.cpp example32.sequence.cpp

Ce Makefile indique que l'exécutable a3a.exe dépend des fichiers sources a3driver.cpp et example32.sequence.cpp. Une fois exécuté, il exécutera la commande pour compiler le programme dans le fichier exécutable.

2. Utilisation des règles intégrées :

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

a3driver.o: a3driver.cpp
    $(CC) $(CPPFLAGS) -c a3driver.cpp

example32.sequence.o: example32.sequence.cpp
    $(CC) $(CPPFLAGS) -c example32.sequence.cpp

Ce Makefile utilise des règles intégrées pour simplifier les commandes de compilation. Il définit la variable CC comme compilateur C et la variable CPPFLAGS avec des indicateurs de compilation communs. Les dépendances sont toujours explicitement définies, mais les commandes de compilation sont automatiquement générées.

3. Utilisation de dépendances générées automatiquement :

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

depend: .depend

.depend: $(SRCS)
    $(CC) $(CPPFLAGS) -MM $^ > .depend;

.PHONY: clean

clean:
    rm -f a3driver.o example32.sequence.o .depend

include .depend

Ce Makefile utilise l'indicateur -MM intégré pour générer automatiquement des dépendances. La cible depend exécute la commande qui génère le fichier .depend avec les dépendances. La cible .PHONY: clean est une cible spéciale qui n'est pas réellement un fichier ou une règle. La cible propre supprime les fichiers objets et le fichier .depend.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn