IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Les notions de base du Fortran

Support de cours


précédentsommairesuivant

Annexe D : système de compilation

14-1. Système de compilation

La commande f90 permet de générer un exécutable à partir de fichiers sources Fortran.

Celle-ci appelle un système de compilation faisant successivement appel à :

La composante préprocesseur transforme le code source Fortran en entrée au moyen de directives.

La composante compilateur analyse le source Fortran fourni (éventuellement transformé à l'étape précédente) avec :

  • détection des erreurs de syntaxe ;
  • traduction du source en langage machine plus ou moins optimisé ;
  • production d'un module objet.

Enfin la dernière composante fait appel au loader qui récupère les modules objet précédemment créés et les regroupe pour produire un module exécutable.

Les différentes unités de programme constituant une application Fortran peuvent figurer dans un même fichier ou bien être réparties dans plusieurs fichiers. Ceux-ci doivent être suffixés par .f ou .f90.

Le compilateur suppose que le source est écrit avec le format fixe si le fichier est suffixé par .f et avec le format libre si le fichier est suffixé par .f90. Ce format d'écriture peut être explicité au moyen d'une option indépendamment du suffixe employé.

Les fichiers correspondant aux modules objets sont suffixés par .o.

Par défaut le module exécutable est stocké dans un fichier de nom a.out qu'il est possible de renommer à l'aide de l'option -o nom_exécutable_désiré.

L'option -c permet de conserver le ou les modules objets produits par le compilateur et d'inhiber l'étape du loader.

C'est la technique employée par l'utilitaire make qui, automatiquement, lance les compilations des différents fichiers source constituant l'application. Les modules objet obtenus sont in fine fournis au système de compilation pour la production du module exécutable.

Exemple
Sélectionnez
1.
2.
3.
4.
5.
$ f90 -c source1.f90
$ f90 -c source2.f90
...
$ f90 -c sourcen.f90
$ f90 *.o -o a.exe

Il est possible d'archiver les fichiers *.o à l'aide de l'utilitaire ar dans le but de les regrouper dans un seul fichier dont le nom est de la forme libxxx.a.

Cela permet la constitution de bibliothèques de modules objet lesquelles sont transmises à la composante loader à l'aide des options -L et -l permettant de spécifier l'endroit où celles-ci sont stockées et leur nom.

Exemple

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
$ f90 -c source1.f90
$ f90 -c source2.f90
    ...
$ f90 -c sourcen.f90
$ ar -rv libexemple.a *.o
$ mv libexemple.a $HOME/lib
$ f90 -L$HOME/lib -lexemple -o a.exe

précédentsommairesuivant

Copyright © 2006 Patrick Corde et Anne Fouilloux. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.