Compilation et liaison de plusieurs fichiers .cpp avec un Makefile
Dans le développement de projets, la gestion de plusieurs fichiers sources peut être fastidieuse. Un Makefile fournit un moyen simplifié d'automatiser le processus de compilation et de liaison. Dans ce cas, l'objectif est de compiler tous les fichiers ".cpp" du répertoire "/src" en fichiers ".o" du répertoire "/obj", puis de les lier dans un exécutable binaire dans le dossier racine.
Implémentation du Makefile
Pour y parvenir, un Makefile peut être créé avec le contenu suivant :
<code class="makefile"># Define directories SRC_DIR = src OBJ_DIR = obj # Get all .cpp files in the src directory SRC_FILES = $(wildcard ${SRC_DIR}/*.cpp) # Derive .o files from .cpp files OBJ_FILES = $(patsubst ${SRC_DIR}/%.cpp, ${OBJ_DIR}/%.o, ${SRC_FILES}) # Linker flags LDFLAGS = ... # C compiler flags CPPFLAGS = ... # C++ compiler flags CXXFLAGS = -std=c++11 -MMD -MP # Target binary main.exe: ${OBJ_FILES} g++ ${LDFLAGS} -o $@ $^ # Compile .cpp to .o in obj/ directory ${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp g++ ${CPPFLAGS} ${CXXFLAGS} -c -o $@ $< # Include automatically generated dependencies -include ${OBJ_FILES:.o=.d}</code>
Explication
Bonnes pratiques
Cette approche de compilation et de liaison de plusieurs fichiers ".cpp" est couramment utilisée et suit les pratiques standard. Il offre une flexibilité dans la gestion des fichiers sources via un Makefile, tout en garantissant une compilation et une liaison efficaces.
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!