3

Я устанавливаю MOOG, и когда я make -f Makefile.maclap я получаю сообщение об ошибке:

$ make -f Makefile.maclap
g77 -w   -c -o Abfind.o Abfind.f
make: g77: No such file or directory
make: *** [Abfind.o] Error 1

После исследования в Интернете, я думаю, что, поскольку у меня есть gcc-5, команда g77 не существует на моем компьютере.

Поэтому, основываясь на вопросе об обмене стека, я использовал alias g77=/usr/local/bin/gfortran-5 чтобы попытаться скомпилировать код fortran с помощью gfortran.

Теперь, когда я g77 я вижу gfortran-5: fatal error: no input files compilation terminated , что указывает на то, что g77 работает как скомпилированный.

Но когда я make -f Makefile.maclap я все равно получаю ошибку:

$ make -f Makefile.maclap
g77 -w   -c -o Abfind.o Abfind.f
make: g77: No such file or directory
make: *** [Abfind.o] Error 1

Как я могу получить команду make, которая использует fortran-5 для компиляции файлов Abfind.o и Abfind.f?

Как я могу успешно выполнить шаги make и make install чтобы запустить этот пакет программного обеспечения?

2 ответа2

3

Программа make увидит только имена, которые на самом деле являются файлами (или каталогами). Он ничего не знает о псевдонимах оболочки.

Вместо alias , если у вас в символе g77 есть символ $PATH , это будет работать. Во многих средах, если у вас есть каталог $HOME/bin , он автоматически добавляется в ваш $PATH . (Если нет, это просто сделать вручную, детали зависят от вашей оболочки).

Если это более простой случай:

cd
mkdir bin
cd bin
ln -s /usr/local/bin/gfortran-5 g77

Затем выйдите из системы и войдите снова (чтобы сценарии инициализации оболочки обновили путь и т.д.)

0

Если вы не хотите создавать символическую ссылку, подобную предложенной @Thomas, вы можете создать псевдоним прямо в Makefile, разместив эту строку где-то в верхней части Makefile:

G77 := /usr/local/bin/gfortran-5

и затем, где-то в вашей цели, используйте это как:

$(G77) -w -c -o Abfind.o Abfind.f

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .