# Pb sur un petit bout de code

**URL:** <https://www.debian-fr.org/t/pb-sur-un-petit-bout-de-code/60623>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 7:41 UTC](https://www.debian-fr.org/t/pb-sur-un-petit-bout-de-code/60623 "2016-02-21T19:41:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![chicard](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/f0a364/32.png) [@chicard](https://www.debian-fr.org/u/chicard)\
**Post date:** [Février 21, 2016, 7:41 UTC](https://www.debian-fr.org/t/pb-sur-un-petit-bout-de-code/60623/1 "2016-02-21T19:41:21Z")

</div>

Bonjour,

j’ai créé 4 fichiers (bonjour.h, bonjour.c, main. et un makefile). Comme leur nom l’indique le code que je vais écrire doit juste affiché bonjour.

bonjour.h

`#ifndef H_BONJOUR
#define H_BONJOUR
void Bonjour(void);
#endif
`

bonjour.c

[code]#include \<stdio.h\>  
#include \<stdlib.h\>

void Bonjour(void)  
{  
printf(“bonjour\n”);  
}  
[/code]

main

[code]#include \<stdio.h\>  
#include \<stdlib.h\>  
#include “bonjour.h”

int main(void)  
{  
Bonjour();  
return 0;  
}[/code]

makefile

[code]CC=gcc  
CFLAGS=-W -Wall -ansi -pedantic  
LDFLAGS=  
EXEC=bonjour

all: $(EXEC)

bonjour: bonjour.o main.o  
gcc -o $@ $^ $(LDFLAGS)

%.o: %.c  
gcc -o $@ -c $ $(CFLAGS)

main.o: bonjour.h

clean:  
rm -rf \*.o

mrproper:  
rm -rf $(EXEC)  
[/code]

mais apparemment cela ne marche pas car lorsque je fait un make all (qui doit appelé mon code et créé le programme bonjour (que je lance en faisant $ ./bonjour)je me retrouve avec:

[code]USER@debian:~/Documents$ ls  
bonjour.c bonjour.h main.c Makefile Makefile~

USER@debian:~/Documents$ make all  
gcc -o bonjour.o -c -W -Wall -ansi -pedantic  
gcc: fatal error: no input files  
compilation terminated.  
make: \*\*\* [bonjour.o] Erreur 4

[/code]

J’aimerais bien savoir où est l’erreur et comment la corriger surtout.

Merci.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 7:41 UTC](https://www.debian-fr.org/t/pb-sur-un-petit-bout-de-code/60623/2 "2016-02-21T19:41:22Z")

</div>

Tu as une erreur de copier/coller.

---

<div class="post-metadata">

**Author:** ![nels69](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/8491ac/32.png) [@nels69](https://www.debian-fr.org/u/nels69)\
**Post date:** [Février 21, 2016, 7:41 UTC](https://www.debian-fr.org/t/pb-sur-un-petit-bout-de-code/60623/3 "2016-02-21T19:41:32Z")

</div>

je ne suis pas un expert en Makefile, mais j’aurai plutôt fait comme ça:

[code]CC=gcc  
CFLAGS=-W -Wall -ansi -pedantic  
LDFLAGS=  
EXEC=bonjour

all: $(EXEC)

bonjour: bonjour.o main.o  
$(CC) -o $@ $^ $(LDFLAGS)

bonjour.o: bonjour.c  
$(CC) -o $@ -c $\< $(CFLAGS)

main.o: main.c bonjour.h  
$(CC) -o $@ -c $\< $(CFLAGS)

clean:  
rm -rf \*.o

mrproper:  
rm -rf $(EXEC)[/code]

---

<div class="post-metadata">

**Author:** ![chicard](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/f0a364/32.png) [@chicard](https://www.debian-fr.org/u/chicard)\
**Post date:** [Février 21, 2016, 7:41 UTC](https://www.debian-fr.org/t/pb-sur-un-petit-bout-de-code/60623/4 "2016-02-21T19:41:36Z")

</div>

Effectivement,

il me fallait mettre les “\<” après les $

[code]%.o: %.c  
$(CC) -o $@ -c $\< $(CFLAGS)

main.o: main.c bonjour.h  
$(CC) -o $@ -c $\< $(CFLAGS)[/code]

ainsi que la ligne complète main.o: main.c bonjour.h.

Comme quoi, même dans les bouquin il y a des erreurs.

Merci.
