equal for all

lundi 1 août 2011

Comment compiler des codes C dans le Makefile

Comment compiler des codes C dans Makefilethumbnail Makefiles d'automatiser la compilation de source C.

Un programmeur peut compiler en C ou C + + fichiers source à la main assez facilement, aussi longtemps que le projet n'est pas trop grand. Mais la compilation de grandes quantités de fichiers source devient fastidieuse manuellement et est sujette à erreur. Par ailleurs, de nombreux projets de compilation C nécessitent de se produire dans un certain ordre, afin que les dépendances entre les fichiers sont remplies. Programmeurs ensuite utiliser pour gérer les fichiers makefile compilation du code source dans les grands projets. Makefiles travailler avec la commande "make" pour dicter comment et quand les fichiers dans un programme C sont compilés.




Instructions
Les choses dont vous aurez besoin

Linux
Compilateur GNU C (gcc)

1

Créer un fichier makefile pour compiler un fichier source. En supposant que le fichier source C (nommé "hello.c") et un fichier d'entête C (nommé "hello.h") existent, créer un fichier dans ce même répertoire nommé "makefile". Dans makefile, entrez les instructions suivantes:

hello.o:

gcc hello.cpp

Maintenant, exécutez "make" à partir du terminal. Cela devrait compiler hello.c à un "*. out" du fichier.
2

Utiliser un Makefile pour gérer une dépendance. Dans le makefile, modifier l'entrée pour ressembler à cet exemple:

hello.o: hello.h

gcc hello.cpp

Le makefile définit le "hello.o« cible de dépendre hello.h. Si hello.h existe, alors la commande pour compiler hello.cpp va exécuter.
3

Utilisez le makefile pour compiler les dépendances multiples. Supposons maintenant que d'un autre fichier, "goodbye.c» existe dans le même répertoire que "hello.c". Modifier le makefile pour montrer que hello.o dépend du fichier de goodbye.c:

hello.o: goodbye.o

gcc hello.cpp

goodbye.o:

gcc goodbye.c

Dans cet exemple, hello.o nécessaire goodbye.o. Ainsi, le premier makefile compile goodbye.c de créer goodbye.o, puis hello.o aura rencontré sa dépendance.

0 commentaires:

Enregistrer un commentaire