linker - 将 Racket 程序链接到 Fortran 库

标签 linker racket raco

我有一个 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/

相关文章:

package - 以编程方式确定是否安装了 Racket 软件包

c++ - 在 Ubuntu 中定位 Boost 库

c - c 中的包装函数

c++ - automake undefined reference

c - 未使用的变量未在映射文件中分配地址

mysql - "Buffering"断开连接时在线表格中的数据输入( Racket )

lisp - Mysterious Racket 错误 : define: unbound identifier; also, 没有#%app 语法转换器绑定(bind)在:define

Scheme 编写一个函数,返回列表中的奇数个数