我有一个 Racket 程序,我想链接到一个 Fortran 库和另一个库,因为 Fortran API 运行良好。我从Stack Overflow上看到answer Jens Axel Søgaard 表示他能够链接到 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
最佳答案
Racket中的FFI使用libffi动态加载库文件。
如果可以从 C 程序使用 Fortran 库, 那么也应该可以从 Racket 中使用它。
我有点不确定我使用的LAPACK库是否是生产的 由 Fortran 编译器 - 或者是否做了一些事情来使 它可以从 C 中使用。
如果将 ++lib
标志传递给 raco exe
生成的可执行文件
应该包括共享库。具体细节我不知道。
关于linker - 将 Racket 程序链接到 Fortran 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37261244/