我没有使用Fortran的经验,但是我试图通过使用.Fortran()函数从R调用它来运行该语言中的一个非常简单的循环.每当我运行下面粘贴的R代码的最后一行时,R gui崩溃,我得不到任何结果.我有兴趣将Fortran的实数x向量带回R进行进一步分析.g是0到1之间的数值,n是整数,它们都是由用户在R中提供的.
任何帮助将非常感激!最好,
文森特
保存在bar.f中的Fortran代码:
subroutine bar(n, g, x)
integer n
double precision g
double precision x(n)
integer i
x(1)=1
do 100 i = 2, n
x(i) = x(i-1) * g + 1
100 continue
end
Run Code Online (Sandbox Code Playgroud)
使用gfortran在Cygwin中编译DLL:
gfortran -shared -obar.dll bar.f
Run Code Online (Sandbox Code Playgroud)
R代码:
dyn.load("d:/bar.dll")
is.loaded("bar")
.Fortran("bar", n=as.integer(15), g=as.double(5), x=as.double(rnorm(5)))
Run Code Online (Sandbox Code Playgroud) 我正在寻找这两种语言之间FFI的最小例子,这是一个非常简单的Go程序调用Fortran库的hello世界.
我想强调一点,我不是在寻找外部资源,建议或教程,只是golang中的最小代码片段,以及Fortran中的相应格式.
这个网站上有很多例子:
Go - > Fortran示例符合这些并且对其他开发人员有用.
这个问题有一个答案和一个链接的问题,因为这是一个副本而不是.关闭并重定向此问题作为可能以-5票结束的副本对stackoverflow用户没有用,尽管两者都提出了一个合理的问题.