Compilation 编译FORTRAN程序的问题
我必须编译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
我在这方面不是一个有经验的人,但我已经尝试在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
被解释为一个不存在的输入文件。请使用标记以引起更多注意。