2015-11-25 10 views
1

Мне нужно скомпилировать программы Fortran, но мне это не удалось.
Я не опытный человек в этой теме, но я попытался внести некоторые изменения в make-файл, к сожалению, проблема не устранена.Проблемы с компиляцией программы FORTRAN

Оригинальный Makefile был:

CC = cc 
F77 = f77 
CFLAGS = -g -DSOLARIS -DDEBUG #-DINTEL -DFREEBSD #-DDEBUG 
FFLAGS = -g -c 
OBJDIR= ../bin 
LIB = ./sub/libsaito.a 

all: shearSAITOniu shearsaito.li shearsaito shearsaito.2 \ 
# shearsaito run.saito saito 

shearSAITOniu: shearSAITOniu.f ${LIB} 
    f77 shearSAITOniu.f -e -o ${OBJDIR}/shearSAITOniu -g ${LIB} 

shearsaito.li: shearsaito.li.f ${LIB} 
    f77 shearsaito.li.f -e -o ${OBJDIR}/shearsaito.li -g ${LIB} 

shearsaito: shearsaito.f ${LIB} 
    f77 shearsaito.f -e -o ${OBJDIR}/shearsaito ${LIB} 

shearsaito.2: shearsaito.2.f ${LIB} 
    f77 shearsaito.2.f -e -o ../bin/shearsaito.2 -g ${LIB} 

qsaito.li: qsaito.li.f ${LIB} 
    f77 qsaito.li.f -e -o ${OBJDIR}/qsaito.li ${LIB} 

forward: forward.f ${LIB} 
    f77 forward.f -e -o ${OBJDIR}/forward ${LIB} 

#shear3d: shear3d.f ${LIB} 
    f77 shear3d.f -e -o shear3d ${LIB} 

#run.saito: run.saito.f ${LIB} 
    f77 run.saito.f -o run.saito ${LIB} 

#s_saito: s_saito.f ${LIB} 
# f77 s_saito.f -o s_saito ${LIB} 

Тогда я сделал изменения в CCFLAGS заменяющий -DSOLARIS с -D_LINUX.
После этого сделать появляется сообщение об ошибке:

f77 shearSAITOniu.f -e -o ../bin/shearSAITOniu -g ./sub/libsaito.a
/usr/bin/f77: Illegal option: -e
make: *** [shearSAITOniu] Error 255

я не уверен, о значении этого сообщения об ошибке, но я также пытался заменить f77 компилятор с gfortran и получаю эту ошибку:

gfortran shearSAITOniu.f -e -o ./shearSAITOniu -g ./sub/libsaito.a
gfortran: error: ./shearSAITOniu: No existe el archivo o el directorio
make: *** [shearSAITOniu] Error 1

Я думаю, что эти программы были скомпилированы оригинально на 32-битной машине, мой 64-битный, но я не знаю, как именно это влияет. Надеюсь, вы могли бы помочь мне решить эту проблему, спасибо.

+0

Используйте тег [tag: fortran], чтобы привлечь больше внимания. –

ответ

1

Для компиляции программы shearSAITOniu с gfortran, используйте командную строку:

gfortran shearSAITOniu.f -ffree-form -o ./shearSAITOniu -g ./sub/libsaito.a 

Это позволит решить ошибку:

gfortran: error: ./shearSAITOniu: No existe el archivo o el directorio 

но не обязательно другие ошибки, которые еще не обнаружены.

Это является причиной для этой ошибки:

-e вариант из f77 компилятор, который означает : Принять расширенные входные длины строки исходного текста.

-oимя_файла вариант обоих f77 и gfortran компиляторов, означает: Создание выходного файла «имя файла».

-eсимвол вариант из gfortran компилятора (строго, компоновщик) , что означает: Make символ «символ» точка входа программы.

Для обоего f77 и gfortran компиляторов имени файла, которое появляется в командной строке, не предшествуют опцией -o интерпретируемые в качестве имен входного файла для компиляции или компоновки.

Поэтому то, что отказавший командной строки:

gfortran shearSAITOniu.f -e -o ./shearSAITOniu -g ./sub/libsaito.a 

gfortran средства является: компилировать и компоновать входные файлыshearSAITOniu.f, ./shearSAITOniu и./sub/libsaito.a; вставки отладка информации в полученной программе (-g), и сделать символ-oточка входа программы.

The -o интерпретируется как символ из опции -eсимвол и ./shearSAITOniu интерпретируется как входной файл, который не существует.

Смежные вопросы