make "не может найти библиотеки" - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь скомпилировать инструмент оценки параметров til PEST (http://www.pesthomepage.org/) для linux.

Согласно руководству PEST, которое я сделал:

make -f pest.mak all

, но я получаю следующее сообщение об ошибке:

gfortran -c -O3 -static pestdata.for 
gfortran -c -O3 -static pest.for   
gfortran -c -O3 -static pestsub2.for
gfortran -c -O3 -static writall.for
gfortran -c -O3 -static pardef.for
gfortran -c -O3 -static readpest.for
gfortran -c -O3 -static runpest.for
gfortran -static -o pest \
                pest.o pestsub1.o pestsub2.o dercalc.o modrun.o writall.o \
        linpos.o lapack1.o writsig.o common.o \
        pgetcl.o pestwait.o writint.o pardef.o\
                drealrd.o space.o optwt.o cgsolve.o compress.o \
                readpest.o runpest.o lsqr.o orthog.o ms_stubs.o pestdata.o
/bin/ld: cannot find -lgfortran
/bin/ld: cannot find -lm
/bin/ld: cannot find -lquadmath
/bin/ld: cannot find -lm
/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make: *** [pest] Error 1

После того, как я посмотрел в глаза, я пробовал разные вещи, но безрезультатно. Кто-нибудь может мне помочь?

С уважением, Таня

1 Ответ

0 голосов
/ 07 августа 2020

Решения проблемы не следует скрывать в комментариях, поэтому я пишу этот ответ.

Вывод make показывает, что Makefile пытается установить статическое соединение. Для этого требуются библиотеки, которые могут быть связаны статически, в частности libm.a, libgfortran.a, libquadmath.a и lib c .a

Возможное решение - удалить флаг -static на последнем этапе. . Получившемуся исполняемому файлу, конечно, потребуются общие объекты (libm.so и друзья), чтобы его можно было запустить. Однако в большинстве случаев это не проблема.

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