【发布时间】:2019-05-30 21:59:07
【问题描述】:
我在 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:无法打开共享对象文件:没有这样的文件或目录
我不知道如何调试。谁能帮我解决它?非常感谢!
【问题讨论】:
标签: linux shell shared-libraries