3

我有一个 Racket 程序,我想链接一个 Fortran 库和另一个库,因为 Fortran API 运行良好。我从 Jens Axel Søgaard 的 Stack Overflow回答中看到,他能够链接到 CBLAS 和 LAPACK。我使用的库是不同的,但我希望我能从 Racket 中使用它们。这会很甜蜜。

我认为我的问题很简单。目前,我构建了可以在所需平台(Windows)上执行的 Racket 程序,如下所示:

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

在上面,我没有编译或链接到任何其他人的 Fortran 库。现在我将成为,我的raco命令会是什么样子?假设我有两个需要链接的库: ${LIBPATH}/libeccodes_f90.dll ${LIBPATH}/libeccodes.dll

4

1 回答 1

2

Racket 中的 FFI 使用 libffi 来动态加载库文件。

如果可以从 C 程序中使用 Fortran 库,那么也应该可以从 Racket 中使用它。

我有点不确定我使用的 LAPACK 库是否是由 Fortran 编译器生成的 - 或者是否做了一些事情以使其可以从 C 中使用。

如果将++lib标志传递给raco exe生成的可执行文件,则应包含共享库。具体细节我不知道。

于 2016-05-16T19:33:07.990 回答