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)