Compilation 编译FORTRAN程序的问题

Compilation 编译FORTRAN程序的问题,compilation,makefile,fortran,gfortran,Compilation,Makefile,Fortran,Gfortran,我必须编译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 she

我必须编译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中做了一个更改,将-dsolais替换为-D_LINUX。
执行此操作后,将显示错误消息:

f77 shearSAITOniu.f-e-o../bin/shearSAITOniu-g./sub/libsaito.a
/usr/bin/f77:非法选项:-e
make:**[shearSAITOniu]错误255

我不确定此错误消息的含义,但我也尝试用gfortran替换f77编译器,并得到此错误:

gfortran shearSAITOniu.f-e-o./shearSAITOniu-g./sub/libsaito.a
gfortran:错误:./shearSAITOniu:不存在el archivo o el directorio
make:**[shearSAITOniu]错误1


我认为这个程序最初是在32位机器上编译的,我的是64位,但我不知道这到底会产生什么影响。我希望你能帮我解决这个问题,谢谢

要使用
gfortran
编译程序
shearSAITOniu
,请使用命令行:

gfortran shearSAITOniu.f -ffree-form -o ./shearSAITOniu -g ./sub/libsaito.a
gfortran shearSAITOniu.f -e -o ./shearSAITOniu -g ./sub/libsaito.a
这将解决错误:

gfortran: error: ./shearSAITOniu: No existe el archivo o el directorio
但不一定是您尚未发现的其他错误

这就是该错误的原因:

-e
f77
编译器的一个选项 表示:接受扩展长度的输入源行

-o
文件名是
f77
gfortran
编译器的一个选项 方法:创建输出文件“文件名”

-e
符号是
gfortran
编译器(严格来说是链接器)的一个选项 这意味着:使symbol“symbol”成为程序的入口点

对于
f77
gfortran
编译器,显示一个文件名 在命令行上,如果前面没有选项
,则会解释-o
命名用于编译或链接的输入文件

因此,失败的命令行是什么:

gfortran shearSAITOniu.f -ffree-form -o ./shearSAITOniu -g ./sub/libsaito.a
gfortran shearSAITOniu.f -e -o ./shearSAITOniu -g ./sub/libsaito.a
gfortran
的意思是:编译并链接输入文件
shearSAITOniu.f
/shearSAITOniu
/sub/libsaito.a
;在生成的程序中插入调试信息(
-g
), 并使symbol
-o
成为程序的入口点

-o
被解释为选项
-e
符号和
/shearSAITOniu
被解释为一个不存在的输入文件。

请使用标记以引起更多注意。