# Séparateur manquant

**URL:** <https://www.debian-fr.org/t/separateur-manquant/77818>\
**Category:** Programmation\
**Created:** [Octobre 23, 2018, 12:20 UTC](https://www.debian-fr.org/t/separateur-manquant/77818 "2018-10-23T00:20:09Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Octobre 23, 2018, 7:57 UTC](https://www.debian-fr.org/t/separateur-manquant/77818/4 "2018-10-23T07:57:45Z")

</div>

Bonjour

Pour pouvoir voir quels sont les caractères  
qui sont contenus dans le fichier `nomduprogramme`  
regarde le retour de la ligne de commande suivante :

```plaintext
hd nomduprogramme 

```

Merci.

* * *

Ça devrait donner ce qui suit :

```plaintext
michel@debg53sw:~$ hd nomduprogramme
00000000 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e |#include <stdio.|
00000010 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 |h>.#include <std|
00000020 6c 69 62 2e 68 3e 0a 69 6e 74 20 6d 61 69 6e 20 |lib.h>.int main |
00000030 28 29 0a 7b 0a 70 72 69 6e 74 66 28 22 48 65 6c |().{.printf("Hel|
00000040 6c 6f 20 77 6f 72 6c 64 21 22 29 3b 0a 72 65 74 |lo world!");.ret|
00000050 75 72 6e 20 28 30 29 3b 0a 7d 0a |urn (0);.}.|
0000005b
michel@debg53sw:~$ 

```

* * *

> [@Lipborn](#):
>
> …j’essaie de compiler du code en C,…

Quelle ligne de commande a été entrée pour lancer cet essai de compilation ?

```plaintext
michel@debtest:~$ mv nomduprogramme{,.c} # Renommer le fichier en y ajoutant le nom d'extension '.c'
michel@debtest:~$ 
michel@debtest:~$ gcc nomduprogramme.c -o hello # Compiler le fichier 'nomduprogramme.c' en un exécutable qui sera nommé 'hello'
michel@debtest:~$ 
michel@debtest:~$ ./hello # Lancer l'exécution du programme 'hello' qui vient d'être créé
Hello world!michel@debtest:~$ 
michel@debtest:~$ 

```

Le programme hello s’est bien exécuté,  
il a bien affiché ce qu’on lui demandait : le message «&nbsp;Hello world!&nbsp;» sans retour à la ligne,  
ce qui fait que le prompt de retour de commande est collé à la suite du message.

Pour qu’il affiche ce même message en terminant l’affichage par un retour à la ligne,  
il faudrait changer la ligne de commande d’affichage du message  
par :

```auto
printf("Hello world!\n")

```

* * *

> [@Lipborn](#):
>
> …J’ai également suite à mes recherches essayées d’exécuter un  
> `make -f nomduprogramme`  
> …

si le contenu du fichier `nomduprogramme` est celui qui est cité dans ton premier message,  
alors ce n’est pas un fichier utilisable par la commande `make`

> [@man make](#):
>
> ```plaintext
> …
> -f file, --file=file, --makefile=FILE
> Use file as a makefile.
> …
> 
> ```

Comme le contenu du fichier `nomduprogramme`  
ne correspond pas à la syntaxe d’un fichier de type `Makefile`  
le retour de la commande :

```plaintext
make -f nomduprogramme

```

devait logiquement être :

```plaintext
michel@debtest:~$ make -f nomduprogramme
nomduprogramme:3: *** missing separator. Arrêt.
michel@debtest:~$ 

```

* * *

J’ai donc créé un fichier `Makefile` qui sera utilisable avec la commande `make`  
pour la compilation du fichier `nomduprogramme.c` en un exécutable qui sera nommé `hello`

```plaintext
michel@debtest:~$ cat Makefile # Afficher le contenu du fichier `Makefile`
hello : nomduprogramme.c
	gcc nomduprogramme.c -o hello
michel@debtest:~$

```

On peut maintenant lancer avec la commande `make`  
la compilation du fichier `nomduprogramme.c`

```plaintext
michel@debtest:~$ make -f Makefile # Lancer la compilation en utilisant le fichier 'Makefile'
gcc nomduprogramme.c -o hello
michel@debtest:~$                     

```

**NOTE :**  
Si le nom du fichier à utiliser avec la commande `make` est `Makefile`  
il n’est pas nécessaire de le spécifier dans la ligne de commande  
=\> un simple `make` suffira à lancer la compilation en utilisant (par défaut) le fichier nommé `Makefile`

---

_[View the full topic](https://www.debian-fr.org/t/separateur-manquant/77818)._
