« Comment compiler le C ? » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
(accents (début))
Ligne 96 : Ligne 96 :
}
}
</source>
</source>

On obtient la sortie suivante:
On obtient la sortie suivante:

[[Image:ErreurAccents.png]]

Ce n'est évidemment pas ce qu'on veut. Le problème est que l'éditeur de texte utilise le format quasi-universel [http://fr.wikipedia.org/wiki/UTF-8 UTF-8] pour enregistrer vos fichiers.
Mais votre environnement est configuré par défaut pour utiliser le codage [http://fr.wikipedia.org/wiki/ISO-8859-15 ISO-8859-15], restreint aux alphabets d'Europe de l'ouest (avec quelques accents) et assez limité. Ils sont incompatibles.

L'idéal est donc de dire au système que vous voulez travailler dans un environnement UTF-8. Pour cela, il faut vous déconnecter (fermer la session) et, avant de vous reconnecter, ouvrir le menu « Langues » de l'écran d'accueil et y choisir « Français (UTF-8) » (c'est une bonne idée de conserver ce choix pour la suite).

Vous serez récompensé par la sortie suivante:

[[Image:AccentsOK.png]]

Version du 14 octobre 2008 à 10:31

Cette page indique en quelques étapes comment compiler vos premiers programmes C, dans l'environnement GNU/Linux proposé sur les machines de TP. La première chose à faire est donc de vous retrouver sur ce système.

Si vous tenez à travailler sous le Windows de Microsoft, plusieurs solutions sont à votre disposition:

  • Vous pouvez essayer Code::Blocks ou wxDev-C++ qui proposent des environnements intégrés (éditeur, compilateur et outils divers).
  • Vous pouvez essayer Cygwin qui installe un sous-système à la Unix au-dessus de Windows.

Notez cependant que les séances de TP se dérouleront obligatoirement sous Linux (au moins pour INFO517). De plus votre code doit pouvoir être compilé avec les outils GNU standards et exécuté sur les machines de TP.

Éditer un fichier source

Pour écrire vos programmes, vous avez besoin d'un éditeur de texte. Attention, on ne parle pas ici d'un logiciel de traitement de texte tel celui proposé par OpenOffice.org ou le Word de Microsoft, mais d'un éditeur de texte brut, non formaté. Voir la page Wikipedia sur ce sujet.

L'éditeur par défaut sur les machines du Bourget (répondant au doux nom de gedit) n'est pas mauvais: on le trouve dans le menu ApplicationAccessoiresÉditeur de texte. Une fois lancé, on obtient ça:

Gedit.png

Il est temps de taper un programme: vous pouvez copier-coller le code de bateau.c: <source lang="c">

  1. include <stdio.h>

int main () { /* Écrit une chaîne */ puts("Bateau !");

/* Renvoie la valeur de sortie en cas de succès */ return 0; } </source>

Edition.png

Vous pouvez alors sauvegarder ce fichier avec le nom bateau.c. Il est pratique de créer un sous-dossier de votre dossier personnel pour y ranger vos programmes. Si vous ne savez pas comment faire, on verra plus tard.

Bateau.c.png

Maintenant que le ficher a un nom en *.c, gedit le reconnaît comme source C et met de jolies couleurs.

Compiler le C

Nous sommes enfin prêts à compiler et tester le programme.

Pour celà, ouvrons un terminal, à travers les menus ApplicationAccessoiresTerminal:

Term.png

Si vous n'avez pas créé de dossier spécial pour vous sources C, vous êtes déjà au bon endroit. Vous pouvez maintenant taper gcc -Wall -o bateau bateau.c pour fabriquer le binaire bateau. Tout devrait bien se passer. Il est maintenant temps de lancer le programme avec ./bateau. À la fin, votre écran devrait ressembler à ça:

Fini.png

Et voilà !


Choisir le codage des caractères

Le compilateur C ne comprend pas ce qu'il écrit quand il affiche une chaîne de caractères: pour lui, ce ne sont que des nombres (les codes des caractères).

Compilez et exécutez les programmes accents.c: <source lang="c">

  1. include <stdio.h>

int main () { /* Écrit une chaîne */ puts("àéïôù");

/* Renvoie la valeur de sortie en cas de succès */ return 0; } </source> et euro.c: <source lang="c">

  1. include <stdio.h>

int main () { /* Écrit une chaîne */ puts("€");

/* Renvoie la valeur de sortie en cas de succès */ return 0; } </source>

On obtient la sortie suivante:

ErreurAccents.png

Ce n'est évidemment pas ce qu'on veut. Le problème est que l'éditeur de texte utilise le format quasi-universel UTF-8 pour enregistrer vos fichiers. Mais votre environnement est configuré par défaut pour utiliser le codage ISO-8859-15, restreint aux alphabets d'Europe de l'ouest (avec quelques accents) et assez limité. Ils sont incompatibles.

L'idéal est donc de dire au système que vous voulez travailler dans un environnement UTF-8. Pour cela, il faut vous déconnecter (fermer la session) et, avant de vous reconnecter, ouvrir le menu « Langues » de l'écran d'accueil et y choisir « Français (UTF-8) » (c'est une bonne idée de conserver ce choix pour la suite).

Vous serez récompensé par la sortie suivante:

AccentsOK.png