Maison > développement back-end > C++ > le corps du texte

Comment compiler et lier des fichiers source C dans un binaire à l'aide d'un Makefile ?

Patricia Arquette
Libérer: 2024-11-03 05:01:02
original
592 Les gens l'ont consulté

How do I compile and link C   source files into a binary using a Makefile?

Compiler et lier des fichiers source C dans un Makefile

Vous souhaitez créer un Makefile qui compile tous les fichiers source C dans le dossier /src et les lie dans un binaire dans le dossier racine /project. Voici comment y parvenir :

Configuration du Makefile

  1. Définissez les variables suivantes :
SRC_DIR := src
OBJ_DIR := obj
SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
Copier après la connexion
  1. Spécifiez le compilateur et l'éditeur de liens flags :
LDFLAGS := ...
CPPFLAGS := ...
CXXFLAGS := ...
Copier après la connexion
  1. Créez une règle cible pour construire le binaire :
main.exe: $(OBJ_FILES)
   g++ $(LDFLAGS) -o $@ $^
Copier après la connexion
  1. Créez des règles de compilation pour chaque fichier source C :
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
   g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
Copier après la connexion

Ce Makefile compilera chaque fichier source du répertoire /src dans un .o correspondant fichier dans le répertoire /obj. Il reliera ensuite tous les fichiers .o pour créer le binaire main.exe dans le répertoire /project.

Bonnes pratiques

Cette approche est généralement considérée comme une approche courante à compiler et lier des fichiers sources C dans un projet. Il existe cependant certaines bonnes pratiques à suivre :

  1. Généraliser le processus :Autoriser la compilation de tous les fichiers sources dans un répertoire sans avoir besoin de spécifier manuellement chaque fichier.
  2. Automatiser la génération de dépendances : Utilisez des indicateurs tels que -MMD pour générer automatiquement des graphiques de dépendances, réduisant ainsi la maintenance surcharge.
  3. Documentation de référence : Consultez toujours le manuel GNU Make pour une compréhension complète de la syntaxe et des fonctionnalités de Makefile.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal