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.
Partager