2016-05-16 4 views
3

Ich habe ein Racket-Programm, das ich mit einer Fortran-Bibliothek und einer anderen Bibliothek verknüpfen möchte, weil die Fortran-API gut funktioniert. Ich habe von einem Stack Overflow answer von Jens Axel Søgaard gesehen, dass er auf CBLAS und LAPACK verlinken konnte. Die Bibliotheken, die ich benutze, sind anders, aber ich hoffe, dass ich sie von Racket verwenden kann. Es wäre ziemlich süß.Verknüpfen eines Racket-Programms mit einer Fortran-Bibliothek

Meine Frage denke ich ist einfach. Derzeit baue ich Racket-Programme, die auf die erforderliche Plattform (Windows) wie folgt ausführen:

$ raco exe -o MyProgram.exe MyProgram.rkt 
$ raco distribute win MyProgram.exe 

Im obigen ich nicht gegen wurde die Erstellung oder Verknüpfung mit jemand anderem Bibliothek Fortran. Nun, dass ich sein werde, wie werden meine raco Befehl (e) aussehen? Angenommen, ich habe zwei Bibliotheken, die ich verknüpfen muss: ${LIBPATH}/libeccodes_f90.dll ${LIBPATH}/libeccodes.dll

Antwort

2

Das FFI in Racket verwendet libffi, um Bibliotheksdateien dynamisch zu laden.

Wenn es möglich ist, die Fortran-Bibliothek aus einem C-Programm zu verwenden, dann sollte es möglich sein, es auch von Racket zu verwenden.

Ich bin ein wenig unsicher, ob die LAPACK-Bibliothek wurde ich von einem Fortran-Compiler erzeugt verwendet - oder ob sich etwas getan es verwendbar von C.

zu machen Wenn Sie die ++lib Flag raco exe die erzeugte passieren ausführbare Datei sollte die gemeinsam genutzte Bibliothek enthalten. Die genauen Details kenne ich nicht.

+0

Danke @soegaard! Ich werde es versuchen. – gknauth

+0

Bitte komm zurück und lass es uns wissen, wenn das funktioniert. :) –

Verwandte Themen