我正在Linux系统上工作,并且具有Fortran可执行文件,例如通过直接执行成功运行a.exe。我想在Cshell脚本中执行此a.exe,但始终将错误报告为“加载共享库时出错:libnetcdff.so.6:无法打开共享库文件:没有这样的文件或目录”
当我执行“ ldd a.exe”时,它报告了此可执行文件的某些库依赖性。
libnetcdff.so.6 => /met5/ZR_LOCAL_LIBS/lib/libnetcdff.so.6(0x00002ab536656000)
该库确实存在,并且我还将路径设置为$ LD_LIBRARY_PATH
a.exe需要两个输入$ INFILE1,$ INFILE2,并将在$ OUTPUT生成输出
它可以通过手动键入./a.exe并提供$ INFILE1和$ INFILE2的路径来执行,但是,当我编写一个简单的Cshell脚本形式时:
#!/bin/csh
#
setenv BASE $PWD
setenv PROGNAME a.exe
cd $BASE
setenv INFILE1 $BASE/agtsc_ave_2017.nc
setenv INFILE2 $BASE/agtsc_ave_2029.nc
setenv OUTFILE $BASE/emis_pct_2029_relative_to_2017.nc
if ( -e $OUTFILE ) rm -f $OUTFILE
$BASE/$PROGNAME
它将报告错误为: a.exe:加载共享库时出错:libnetcdff.so.6:无法打开共享库文件:没有这样的文件或目录
我不知道该如何调试。谁能帮我修复它?非常感谢!
答案 0 :(得分:0)
我认为我找到了问题。我使用别人的.cshrc,所以有一个$ path问题,导致shell脚本找不到对应的库。我删除了较旧的.cshrc文件,并根据我的情况创建了一个新文件,问题已解决。谢谢。