无法在R中加载读取文件的Fortran dll

无法在R中加载读取文件的Fortran dll,r,dll,fortran,R,Dll,Fortran,我创建了一个简单的Fortran子程序,计算给定文件的行数,但我无法将其作为dll加载到R中,我使用它创建Fortran dll一段时间,它们在调用R时通常正常工作,下面是Fortran子程序: subroutine countlines(fname,nl) character(len=20), intent(in):: fname integer, intent(inout):: nl integer :: ios character(len=1) junk open(unit=7, fi

我创建了一个简单的Fortran子程序,计算给定文件的行数,但我无法将其作为dll加载到R中,我使用它创建Fortran dll一段时间,它们在调用R时通常正常工作,下面是Fortran子程序:

subroutine countlines(fname,nl)

character(len=20), intent(in):: fname
integer, intent(inout):: nl
integer :: ios
character(len=1) junk

open(unit=7, file=fname, status='old', iostat=ios)

if (ios .ne. 0) then 
    write(*,*) fname, 'cannot be opened !'
    go to 20
end if

ios = 0
nl = 0
do while (.true.)
  read(7,*,iostat=ios) junk
  if (ios .ne. 0) exit
    nl = nl + 1
enddo

close(7)

stop
20 write(*,*)'I/O error reading file !'

end subroutine countlines
创建dll时执行以下操作:

R CMD SHLIB countlines.f90

R无法使用
dyn.load(“countlines.dll”)
加载countlines.dll,因为这是我第一次尝试使用打开、关闭、读取和写入函数创建dll,我想它们是原因,但我不知道为什么以及如何解决此问题,有人能帮我吗?

你不想告诉我们你实际尝试了什么吗?我试图将此子例程用作R中的dll,但R无法加载它。你到底采取了哪些步骤,在哪里失败了,出现了哪些错误消息。错误消息是经典的:inDL中的错误(x,as.logical(local),as.logical(now),…):无法加载共享对象'C:/Users/Olivier/Documents/Fortran/countlines.dll'在Linux中为我加载并运行(一旦我删除了导致R终止的
stop
)。你确定f90中一个微不足道的“hello world”对你有用吗?此外,我还对您最后告诉我们错误消息的地方的评论表示感谢。