无法在R中加载读取文件的Fortran dll
我创建了一个简单的Fortran子程序,计算给定文件的行数,但我无法将其作为dll加载到R中,我使用它创建Fortran dll一段时间,它们在调用R时通常正常工作,下面是Fortran子程序:无法在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
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”对你有用吗?此外,我还对您最后告诉我们错误消息的地方的评论表示感谢。