如何解决dyn.load“ path / file_name.so”中的错误:无法加载共享对象
我在R中使用了几个已编译的Fortran子例程。当我尝试调用此特定子例程时,它会产生以下错误:
Error in dyn.load("path/file_name.so") :
unable to load shared object '/complete_path/file_name.so':
libgfortran.so.4: cannot open shared object file: No such file or directory
尽管其他子例程已完美加载,但这是该子例程:
subroutine box_center(m,n,o,a,b,ps,box,filter)
implicit none
integer,intent(in) :: m,o
integer :: x,y,t,mone,none,b
double precision,intent(inout) :: ps(m,o),box(a,b)
double precision,intent(out) :: filter(m,o)
mone=m - 3
none=n - 3
do 20,t=1,time
do 10,x=4,mone
do 5,y=4,none
box = reshape((/ps(x-3,y-3,t),ps(x-3,y-2,y-1,t) &,y+1,y+2,y+3,ps(x-2,ps(x-1,ps(x,ps(x+1,ps(x+2,ps(x+3,t)/),(/a,b/))
if(minval(box) .EQ. box(4,4)) then
filter(x,t) = 1.00
else
filter(x,t) = 0.00
end if
5 end do
10 end do
20 end do
end subroutine box_center
所有子例程都使用相同的过程进行编译:
gfortran -c -ffree-form file_name.f
R CMD SHLIB file_name.f
要提及的另一点:当我使用本地计算机时,此特定子例程加载正常,这会在HPC上产生错误。
解决方法
也许像我这样的初学者会发现它有用,而不是删除问题。
在远程计算机上编译Fortran子例程是解决方案,不在本地计算机上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。