在Linux系统上,我试图运行一个Fortran程序,该程序利用了一些共享库(netCDF-libs,如果有区别的话)。在我跑步之前,我设置
LD_LIBRARY_PATH
这样它就指向了我的图书馆的位置。然后我运行可执行文件,很快就得到了错误
../my_program:加载共享库时出错:libnetcdff.so.5:无法打开共享对象文件:没有这样的文件或目录
现在,我仔细检查
LD库路径
,然后cd到它,找到平淡的日子
$ls*ff美元*
$libnetcdff.a libnetcdoff.la libnetcdff.so libnetcdffe.so.0 libnetcdff.so.0.0.0
因此libnetcdff是绝对存在的。
有人能给我指一下这个问题吗?
我想到的一件事是,可执行文件似乎想找到libnetcdff.so.5,而存在的库实际上是libnetcdff.so.0。这就是问题所在吗?如果是这样,有没有办法说服可执行文件不要坚持“5”?或者,从libnetcdff.so.0到libnetcdff.so.5的链接能解决问题吗?(BTW,我在目录中没有权限,这就是为什么我还没有尝试过的原因。)
环境信息:CentOS机器,使用gfortran编译的代码。是的,当我编译时
-L
标志指向的目录与
LD库路径
指向。
谢谢