Un petit script pour réaliser un projet c de base
Exemple d’utilisation pour réaliser un projet bonjour le monde !
bruno@elliott:~/Works/langage_C$ mkdir projet
bruno@elliott:~/Works/langage_C$ cd projet
bruno@elliott:~/Works/langage_C/projet$ skeletonc projet
bruno@elliott:~/Works/langage_C/projet$ ls
Makefile projet.c
bruno@elliott:~/Works/langage_C/projet$ make
gcc projet.c -g -Wall -pedantic -ansi -o projet
bruno@elliott:~/Works/langage_C/projet$ ls
Makefile projet projet.c
bruno@elliott:~/Works/langage_C/projet$ ./projet
Bonjour le monde
Un fichier archive contient ce petit projet: skeletonc_src.tar
sinon dans un répertoire ~/Works/skeletonc
wget workboot.fr/Download/Scripts/skeletonc_src.tar
pour rapatrier le fichier
L’archive skeletonc_src.tar à extraire dans /usr/local/bin
Ce répertoire permet de placer des exécutables accessible à tous les utilisateurs de la machine , dans notre cas : skeletonc et makeMakefile et on y place les squelettes .skel
sudo tar xvf skeletonc_src.tar -C /usr/local/bin
après vous pouvez effacer cette archive (le tar)
c’est installé !
fichier : skeltonc (executable)
#!/bin/sh
if [ -z $1 ]
then
nom="hello"
else
nom=$1
fi
cp /usr/local/bin/skeleton.c.skel $nom.c
makeMakefile $nom
Fichier : makeMakefile (executable)
#!/bin/sh
if [ -z $1 ]
then
nom="hello"
else
nom=$1
fi
echo TARGET = $nom > Makefile
cat /usr/local/bin/Makefile.skel >> Makefile
fichier: Makefile.skel
#Makefile petit projet avec skeletonc
CFLAGS = -g -Wall -pedantic -ansi
CC = gcc
DEB = gdb
$(TARGET): $(TARGET).c
$(CC) $< $(CFLAGS) -o $@
edit: $(TARGET).c
vi $(TARGET).c
gdb: $(TARGET)
$(DEB) $(TARGET)
clean:
rm $(TARGET)
fichier: skeleton.c.skel
/********************************
* Projet :
* Auteur :
* Date :
********************************/
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char **argv)
{
printf ("Bonjour le monde \n");
return EXIT_SUCCESS;
}
Usage de skeletonc
skeletonc est outil pour créer un petit projet c rapidement
dans le répertoire Works/LangageC/test
skeletonc test
va générer automatiquement un source c de base (squelette) et un makefile adapté
on dispose de
make qui va lancer la compilation avec gcc de notre projet.c
/********************************
* Projet :
* Auteur :
* Date :
********************************/
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char **argv)
{
printf ("Bonjour le monde \n");
return EXIT_SUCCESS;
}
Ne pas oublier de remplir le cartouche Projet, Auteur et Date .
TARGET = projet
#Makefile petit projet avec skeletonc
CFLAGS = -g -Wall -pedantic -ansi
CC = gcc
$(TARGET): $(TARGET).c
$(CC) $< $(CFLAGS) -o $@
edit: $(TARGET).c
vi $(TARGET).c
gdb: $(TARGET)
$(DEB) $(TARGET)
clean:
rm $(TARGET)
make edit # va vous permettre d’éditer le projet avec vi
make clean # nettoie le projet de son executable
bruno@elliott:~/Works/langage_C/projet$ ls
Makefile projet projet.c
bruno@elliott:~/Works/langage_C/projet$ make clean
rm projet
bruno@elliott:~/Works/langage_C/projet$ ls
Makefile projet.c
bruno@elliott:~/Works/langage_C/projet$
make gdb # lance le debugger
par défaut l’option -g est positionnée.
make gdb # voir le cours sur gdb
Reading symbols from projet... (gdb) l 1 /******************************** 2 * Projet : 3 * Auteur : 4 * Date : 5 ********************************/ 6 #include <stdlib.h> 7 #include <stdio.h> 8 9 int main (int argc, char **argv) 10 { (gdb) l 11 printf ("Bonjour le monde \n"); 12 13 return EXIT_SUCCESS; 14 } (gdb) br main Breakpoint 1 at 0x1148: file projet.c, line 11. (gdb) run Starting program: /home/bruno/Works/langage_C/projet/projet [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Breakpoint 1, main (argc=1, argv=0x7fffffffdb98) at projet.c:11 11 printf ("Bonjour le monde \n"); (gdb) n Bonjour le monde 13 return EXIT_SUCCESS; (gdb)
