Как исправить "не могу открыть общий объектный файл" в сценарии Cshell? - PullRequest
0 голосов
/ 31 мая 2019

Я работаю в системе Linux, и исполняемый файл Fortran egaexe успешно запускается при непосредственном выполнении.Я хочу выполнить этот файл a.exe внутри сценария Cshell, но всегда сообщаю об ошибке как «ошибка при загрузке общих библиотек: 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: невозможно открыть общий объектный файл: нет такого файла или каталога

Я не знаю, как отлаживать через это.Может кто-нибудь помочь мне это исправить?Большое спасибо!

1 Ответ

0 голосов
/ 01 июня 2019

Я думаю, что нашел проблему. Я использую .cshrc других людей, поэтому существует проблема $ path, из-за которой сценарий оболочки не может найти соответствующие библиотеки. Я удаляю старый файл .cshrc и создаю новый в зависимости от моего состояния, проблема исчезла. Благодарю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...