Séparateur manquant

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 :

hd nomduprogramme 

Merci.


Ça devrait donner ce qui suit :

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:~$ 

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

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 « Hello world! » 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 :

printf("Hello world!\n")

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

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

make -f nomduprogramme

devait logiquement être :

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

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

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