« Comment compiler le C ? » : différence entre les versions
m (le mot de la fin) |
(Ajout de WSL comme option de compilation sous Windows) |
||
(17 versions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
Cette page indique en quelques étapes comment compiler vos premiers |
|||
programmes C, |
programmes C, dans l'environnement GNU/Linux proposé sur les machines de TP. |
||
La première chose à faire est donc de [[Linux dans les salles de TP du Bourget|vous retrouver sur ce système]]. |
|||
Si vous tenez à travailler sous le Windows de Microsoft, plusieurs solutions sont à votre disposition: |
|||
== Démarrer le système GNU/Linux == |
|||
* Vous pouvez essayer [http://www.codeblocks.org/ Code::Blocks] ou [http://http://wxdsgn.sourceforge.net/ wxDev-C++] qui proposent des environnements intégrés (éditeur, compilateur et outils divers). |
|||
* Vous pouvez essayer [http://cygwin.com/ Cygwin] qui installe un sous-système à la Unix au-dessus de Windows. |
|||
* Vous pouvez essayer [https://www.microsoft.com/fr-fr/p/ubuntu/9nblggh4msv6 WSL] qui est développé par Microsoft et fournit un terminal ubuntu (ne fonctionne pas encore avec Docker et le support d'application graphique n'est pas supporté officiellement même si fonctionnelle avec un serveur X type Xming). |
|||
''Notez cependant que les séances de TP se dérouleront obligatoirement sous Linux (au moins pour [[INFO502]], [[INFO505]] et [[INFO517]]). De plus votre code '''doit pouvoir être compilé avec les outils GNU standards et exécuté''' sur les machines de TP.'' |
|||
Si votre poste de travail tourne actuellement sous Windows, il vous faut |
|||
redémarrer: à l'écran de connexion de Windows, cliquer sur «&ndsp;Arrêter le |
|||
système », choisir l'entrée « Redémarrer » puis cliquer sur OK. |
|||
Lors du démarrage de l'ordinateur, un menu textuel s'affiche avec deux entrées: |
|||
Windows |
|||
Linux |
|||
Il faut être assez vif pour sélectionner Linux (avec la flèche du bas sur votre |
|||
clavier) puis valider avec la toute Entrée. |
|||
Après un peu de patience, vous arrivez sur un écran de connexion tout nouveau: |
|||
taper votre identifiant habituel, puis Entrée, puis votre mot de passe, puis |
|||
validez. Vous voilà sous l'environnement graphique par défaut (il s'appelle Gnome). |
|||
⚫ | |||
Amusez-vous un peu avec ce nouvel outil, soyez curieux. |
|||
Par exemple quelques tâches essentielles pour se sentir chez soi: |
|||
* changez l'arrière-plan du bureau; |
|||
* surfez quelques minutes par exemple sur [http://www.lama.univ-savoie.fr/wiki/ le wiki de l'UFR SFA]; |
|||
* allez voir votre mail. |
|||
Bref, cliquez partout: vous ne devriez pas casser grand chose. |
|||
== Éditer un fichier source == |
== É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 |
Attention, on ne parle pas ici d'un logiciel de traitement de texte tel celui |
||
proposé par OpenOffice.org ou le Word de Microsoft. Voir |
proposé par OpenOffice.org ou le Word de Microsoft, mais d'un éditeur de texte brut, non formaté. Voir |
||
[http://fr.wikipedia.org/wiki/Éditeur_de_texte la page Wikipedia |
[http://fr.wikipedia.org/wiki/Éditeur_de_texte la page Wikipedia sur ce sujet]. |
||
correspondante]. |
|||
L'éditeur par défaut |
L'éditeur par défaut sur les machines du Bourget (répondant au doux |
||
nom de [http://fr.wikipedia.org/wiki/Gedit <tt>gedit</tt>]) n'est pas |
|||
mauvais: on le trouve dans le menu <tt>Application</tt> |
mauvais: on le trouve dans le menu <tt>Application</tt> → |
||
<tt>Accessoires</tt> |
<tt>Accessoires</tt> → <tt>Éditeur de texte</tt>. Une fois lancé, on obtient |
||
ça: |
ça: |
||
Ligne 59 : | Ligne 42 : | ||
Vous pouvez alors sauvegarder ce fichier avec le nom <tt>bateau.c</tt>. |
Vous pouvez alors sauvegarder ce fichier avec le nom <tt>bateau.c</tt>. |
||
Il est pratique de créer un sous-dossier de votre dossier personnel pour y |
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, |
ranger vos programmes. Si vous ne savez pas comment faire, demandez à l'enseignant du TP. |
||
[[Image:bateau.c.png]] |
[[Image:bateau.c.png]] |
||
Maintenant que le ficher a un nom en <tt>*.c</tt>, <tt>gedit</tt> le reconnaît |
Maintenant que le ficher a un nom en <tt>*.c</tt>, <tt>gedit</tt> le reconnaît |
||
comme source C et met de jolies couleurs. |
comme source C et met de jolies couleurs. |
||
== Compiler le C == |
== Compiler le C == |
||
Ligne 70 : | Ligne 53 : | ||
Nous sommes enfin prêts à compiler et tester le programme. |
Nous sommes enfin prêts à compiler et tester le programme. |
||
Pour celà, ouvrons un terminal, à travers les menus <tt>Application</tt> |
Pour celà, ouvrons un terminal, à travers les menus <tt>Application</tt> → |
||
<tt>Accessoires</tt> |
<tt>Accessoires</tt> → <tt>Terminal</tt>: |
||
[[Image:term.png]] |
[[Image:term.png]] |
||
Ligne 80 : | Ligne 63 : | ||
[[Image:fini.png]] |
[[Image:fini.png]] |
||
Et voilà ! |
Et voilà ! |
||
== Pour plus d'information == |
|||
== Choisir le codage des caractères == |
|||
... Google est votre ami. Et n'hésitez pas à contacter vos chargés de TP. Vous êtes également vivement encouragés à participer à ce wiki entre autres en enrichissant cette page. Vous pouvez poser des questions (ou y répondre) sur la page de discussion associée (onglet en haut de cette page). |
|||
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 |
|||
<tt>accents.c</tt>: |
|||
<source lang="c"> |
|||
#include <stdio.h> |
|||
int main () { |
|||
/* Écrit une chaîne */ |
|||
puts("àéïôù"); |
|||
/* Renvoie la valeur de sortie en cas de succès */ |
|||
return 0; |
|||
} |
|||
</source> |
|||
et <tt>euro.c</tt>: |
|||
<source lang="c"> |
|||
#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: |
|||
[[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: |
|||
⚫ | |||
== Préférences de l'éditeur == |
|||
Vous voudrez peut-être activer les options suivantes de l'éditeur (disponibles dans le menu <tt>Édition -> Préférences</tt>) quand vous éditez vos programmes: |
|||
* dans l'onglet <tt>Affichage</tt> : |
|||
** <tt>Afficher les numéros de ligne</tt> (utile pour suivre les indications d'un TP par exemple) |
|||
** <tt>Surligner la ligne actuelle</tt> (pour plus de lisibilité) |
|||
** <tt>Surligner les parenthèses correspondantes</tt> (très utile quand on édite des blocs ou des appels de fonctions imbriqués) |
|||
[[Image:PrefAffichage.png]] |
|||
* dans l'onglet <tt>Éditeur</tt> : |
|||
** <tt>Activer l'indentation automatique</tt> (met automatiquement des tabulations au début des nouvelles lignes) |
|||
[[Image:PrefEditeur.png]] |
|||
Ces options deviennent essentielles quand on édite du code un peu complexe: |
|||
[[Image:ExempleOptions.png]] |
|||
[http://cvresumewritingservices.org/ resume services] |
Dernière version du 5 janvier 2020 à 14:54
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.
- Vous pouvez essayer WSL qui est développé par Microsoft et fournit un terminal ubuntu (ne fonctionne pas encore avec Docker et le support d'application graphique n'est pas supporté officiellement même si fonctionnelle avec un serveur X type Xming).
Notez cependant que les séances de TP se dérouleront obligatoirement sous Linux (au moins pour INFO502, INFO505 et 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 Application → Accessoires → Éditeur de texte. Une fois lancé, on obtient ça:
Il est temps de taper un programme: vous pouvez copier-coller le code de bateau.c: <source lang="c">
- include <stdio.h>
int main () { /* Écrit une chaîne */ puts("Bateau !");
/* Renvoie la valeur de sortie en cas de succès */ return 0; } </source>
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, demandez à l'enseignant du TP.
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 Application → Accessoires → Terminal:
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:
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">
- 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">
- 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:
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:
Préférences de l'éditeur
Vous voudrez peut-être activer les options suivantes de l'éditeur (disponibles dans le menu Édition -> Préférences) quand vous éditez vos programmes:
- dans l'onglet Affichage :
- Afficher les numéros de ligne (utile pour suivre les indications d'un TP par exemple)
- Surligner la ligne actuelle (pour plus de lisibilité)
- Surligner les parenthèses correspondantes (très utile quand on édite des blocs ou des appels de fonctions imbriqués)
- dans l'onglet Éditeur :
- Activer l'indentation automatique (met automatiquement des tabulations au début des nouvelles lignes)
Ces options deviennent essentielles quand on édite du code un peu complexe: