# 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:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lipborn](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/439d5e/32.png) [@Lipborn](https://www.debian-fr.org/u/Lipborn)\
**Post date:** [Octobre 23, 2018, 12:20 UTC](https://www.debian-fr.org/t/separateur-manquant/77818/1 "2018-10-23T00:20:09Z")

</div>

Bonsoir à tous,

Je viens vous voir, car je suis sous atom et j’essaie de compiler du code en C, celui-ci est le plus simple possible en guise de test, mais j’ai toujours le même message, à savoir “séparateur manquant arrêt”.

Quelques recherches m’ont permis de comprendre que ce message est courant quand il y a des soucis d’espacements, mais là ça n’est pas le cas. J’ai également suite à mes recherches essayées d’exécuter un  
`make -f nomduprogramme`  
celui-ci m’indique qu’il y a un souci sur la ligne du `int main ()`, mais impossible de savoir lequel …

Voici le code en question si ça peut aider …

```auto
#include <stdio.h>
#include <stdlib.h>
int main ()
{
printf("Hello world!");
return (0);
}
```

Il est on ne peux plus basique pourtant !

Merci d’avance à tous !

---

<div class="post-metadata">

**Author:** ![sk4hrr](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/7bcc69/32.png) [@sk4hrr](https://www.debian-fr.org/u/sk4hrr)\
**Post date:** [Octobre 23, 2018, 7:12 UTC](https://www.debian-fr.org/t/separateur-manquant/77818/2 "2018-10-23T07:12:40Z")

</div>

Bonjour,

Ça fait un petit moment que je n’ai pas pratiqué, mais ne serait-ce pas le fait d’avoir mis l’accolade à la ligne? Sinon, as-tu essayé avec un IDE dédié type [CodeBlocks](https://packages.debian.org/stretch/codeblocks) ?

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Octobre 23, 2018, 7:57 UTC](https://www.debian-fr.org/t/separateur-manquant/77818/3 "2018-10-23T07:57:00Z")

</div>

Je dirais que l’espace entre ‘main’ et les parenthèses est de trop.

---

<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`

---

<div class="post-metadata">

**Author:** ![Urggar](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/e19b73/32.png) [@Urggar](https://www.debian-fr.org/u/Urggar)\
**Post date:** [Octobre 24, 2018, 11:53 UTC](https://www.debian-fr.org/t/separateur-manquant/77818/5 "2018-10-24T11:53:47Z")

</div>

Bonjour, j’ai changé de compte petit soucis avec l’ancien

@sk4hrr Oui j’ai essayé avec codeblocks.

@Sputnik93 Non ce n’est pas ça j’ai essayé sans cette espace le résultat est le même …

Voici le résultat de la commande :

```nohighlight
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 

```

**Micp** Voici le résultat de la commande que tu m’as donné :

```nohighlight
./MonProgramme.c 
./MonProgramme.c: ligne 3: erreur de syntaxe près du symbole inattendu « ( »
./MonProgramme.c: ligne 3: `int main ()'

```

---

<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 24, 2018, 4:53 UTC](https://www.debian-fr.org/t/separateur-manquant/77818/6 "2018-10-24T16:53:17Z")

</div>

> [@Urggar](#):
>
> …Voici le résultat de la commande :…

Hélas, on ne voit ni le prompt de départ, ni la ligne de commande, ni le prompt de retour,  
on ne peut donc pas savoir dans quel contexte la ligne de commande a été entrée,  
ni quelle était la ligne de commande, ni si elle s’est bien terminée.

Il nous reste donc à essayer d’envisager toutes les possibilités,  
et essayer de trouver laquelle de ces possibilités  
pourrait donner un tel retour de commande, (ce que je n’ai pas le temps de faire).

Cela dit, le retour de la commande `hd nomduprogramme` que je donnais dans [mon message](https://www.debian-fr.org/t/separateur-manquant/77818/4)  
est rigoureusement identique au premier bloc de texte qui est affiché dans [ton message](https://www.debian-fr.org/t/separateur-manquant/77818/5)  
S’il s’agit du fichier à compiler, il devrait être compilable et donner un exécutable tout-à fait fonctionnel.

> [@Urggar](#):
>
> … **Micp** Voici le résultat de la commande que tu m’as donné :…

Même remarque que ci-dessus.
