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 :

Appeler une librairie dynamique écrite en C dans Fortran sous Linux


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut Appeler une librairie dynamique écrite en C dans Fortran sous Linux
    Bonjour à tous, je demande votre aide car je n'arrive pas à lier une librairie dynamique (ma_dll.so) avec un programme Fortran sous Linux. Je débute en Fortran et je n'ai jamais utilisé de librairie dynamique. Je copie-colle ci joint mon programme info.f dont le but est d'afficher une chaine de caractère (en passant par une structure) présente dans la librairie.

    info.f :

    program test
    use iso_c_binding
    implicit none

    INTERFACE
    FUNCTION info() BIND(C) RESULT (pa)
    use iso_c_binding
    type(c_ptr):: pa
    END FUNCTION info
    END INTERFACE

    type(c_ptr), target :: pa
    character(1, c_char),pointer::fpa(: ) ! Je mets un espace pour éviter le smiley
    pa=info()
    call c_f_pointer(pa, fpa, [50])
    print*, fpa(1:50)

    end program test

    Pouvez-vous m'expliquer comment lier ma libraire avec ce code? Et les éventuelles options de compilation? Pour info je compile avec pgfortran.

    Cordialement.

  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
    normalement tu as un .a qui est généré en même temps que le .so
    tu link avec ce .a
    voir même tu peux linker directement le .so:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o test test.f ma_dll.so
    si tu as utiliser les même compilo (icc+ifort ou gcc+gfortran) les symboles sont écrits pareil et cela link tout seul!!!
    sinon un petit
    te donnera les sympboles

Discussions similaires

  1. Réponses: 13
    Dernier message: 15/05/2013, 16h43
  2. [Free Pascal] 64 bits : appel dans un thread d'une méthode d'une librairie dynamique
    Par Invité dans le forum Free Pascal
    Réponses: 0
    Dernier message: 21/04/2013, 16h20
  3. Utilisation d'une librairie dynamique C++ dans un script python
    Par johnraikonen dans le forum Interfaçage autre langage
    Réponses: 6
    Dernier message: 27/01/2011, 15h48
  4. Utiliser une librairie dynamique dans NetBeans
    Par mango54 dans le forum Langage
    Réponses: 6
    Dernier message: 17/06/2008, 14h09
  5. appeler une librairie .so dans une classe
    Par tet.dum dans le forum Langage
    Réponses: 8
    Dernier message: 31/10/2006, 09h34

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