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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

[Fortran 77] Création de bibliothèques de subroutines


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut [Fortran 77] Création de bibliothèques de subroutines
    Bonjour,
    après avoir fait des centaines de subroutines et fonctions, mon bureau commence à exploser . Pour cela, je pense à les mettre tous dans un seul fichier (comme une bibliothèque) et utiliser ce fichier dans le programme sans écrire la subroutine (cad seulement appeler la subroutine).
    Alors est-ce que cela est possible en f77 ? Si oui, comment faire la procédure ? Un petit exemple ?
    Merci

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    tu les met simplement dans un rep, et à la compilation, tu utilise l'archiveur (ar sous linux):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ar -ruv lib.a toto.o titi.o tata.o
    cela va te faire une grosse archive contenant tout tes fichiers compilés et à l'édition de lien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gfortran <options> main.o lib.a -o prog
    tu ajoute simplement le fichier .a dans la commande comme si c t un fichier .o ....

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut
    Rebonjour,
    j aipas tres bien assimile' ta reponse,
    supposons que j ai mit tout mes sous programmes dans un fichier subroutines.f
    tu dit qu il faut taper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ar -ruv lib.a toto.o titi.o tata.o
    alors ou est ce que le fichier subroutines.f apparait?
    ensuite, une fois que j ai commence le programme, comment j appelles ma subroutine du fichier suboutines.f?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Si toutes tes routines sont dans un seul fichier, c'est celui-là qu'il te faut compiler, et pour la coup tu n'a pas besoin de créer une archive puisque tu n'aura qu'un seul objet.
    En clair, une fois que tu aura créé l'objet 'subroutines.o'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gfortran <options> subroutines.f -c
    Tu devra ensuite rajouter, comme l'indiquait genteur slayer, le subroutines.o lors de la compilation d'un programme principal qui fera appel à une ou plusieurs des subroutines incluses dans subroutines.f
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gfortran <options> prog.f subroutines.o -o prog
    Toutefois garer les routines séparées et regrouper tous les objets en une archive, c.-à.-d. une librairie, est préférable; sinon dès que tu changeras la moindre chose dans l'une de tes routines tu devras recompiler le tout pour recréer le 'subroutines.o'.

    Bonne continuation

  5. #5
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    exactement si tu as mis tout ton code source dans un seul fichier, à chaque fois que tu en modifiera une petite partie tu devra tout recompiler... met UNE subroutine/fonction dans UN fichier source... tout ces fichiers sources seront placé dans un rep et tu les compile séparément: il formerons chacun un fichier .o (code compilé) ensuite ce sont ces fichier .o qu'il faudra utiliser pour l'édition de liens (c.f. n'importe quel cours sur la compilation (de n'importe quel language) )

    cela dit ecrire cinquante fichiers .o c'est un peut chiant c'est pourquoi on passe par l'étape d'archivage (la commande ar) du coups ce qui sert pour l'édition de lien est en fait l'archive contenant tout tes .o

    en gros tooi dans ton cas, je suppose que tu as les subroutine dans subroutine.f et le prog principale dans main.f:

    la compilation est don un truc du genre:

    gfortran -c subroutine.f (génère subroutine.o)
    gfortran -c main.f (génère main.o)

    et l'édition de lien (linking en anglais)

    gfortran subroutine.o main.o -o programme.exe

    et là on a généré un code éxécutable nomé "programme.exe"

Discussions similaires

  1. [Fortran 77] Création de répertoire
    Par Thyb1 dans le forum Fortran
    Réponses: 2
    Dernier message: 18/01/2008, 17h00
  2. Création de bibliothèque
    Par Le Furet dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 07/06/2007, 15h49
  3. C++ et création de bibliothèque
    Par damien77 dans le forum C++
    Réponses: 2
    Dernier message: 26/03/2007, 09h56
  4. Problème : création de bibliothèque et utilisation
    Par damien77 dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 21/03/2007, 22h56
  5. Pb création diagramme : bibliothèque non inscrite
    Par jeff37 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/08/2004, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo