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

  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
    Points : 2
    Points
    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 éclairé 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
    Points : 825
    Points
    825
    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
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

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