[英]Problems compiling FORTRAN program
我必须编译Fortran程序,但没有设法做到。
我不是这个主题的经验丰富的人,但是我尝试对makefile进行一些更改,不幸的是问题仍然存在。
原始的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剪切SAITOniu.f -e -o ../bin/shearSAITOniu -g ./sub/libsaito.a
/ usr / bin / f77:非法选项:-e
制作:*** [shearSAITOniu]错误255
我不确定此错误消息的含义,但我也尝试用gfortran替换f77编译器并得到此错误:
gfortran剪切SAITOniu.f -e -o ./shearSAITOniu -g ./sub/libsaito.a
gfortran:错误:./ shearSAITOniu:不存在任何档案导演
制作:*** [shearSAITOniu]错误1
我认为该程序最初是在32位计算机上编译的,而我的程序是64位的,但是我不知道这会如何影响。 希望您能帮助我解决此问题。
要使用gfortran
编译程序shearSAITOniu
,请使用命令行:
gfortran shearSAITOniu.f -ffree-form -o ./shearSAITOniu -g ./sub/libsaito.a
这将解决错误:
gfortran: error: ./shearSAITOniu: No existe el archivo o el directorio
但不一定是您尚未发现的其他错误。
这是该错误的原因:
-e
是f77
编译器的选项,表示: 接受扩展长度的输入源行 。
-o
filename是f77
和gfortran
编译器的选项,这意味着: 创建输出文件“ filename” 。
-e
符号是gfortran
编译器的一个选项(严格来说是链接器),其含义是: 使符号“ symbol”成为程序的入口点 。
对于f77
和gfortran
编译器,在命令行上出现的文件名前都没有-o
选项,这被解释为为编译或链接命名输入文件。
因此,失败的命令行是什么:
gfortran shearSAITOniu.f -e -o ./shearSAITOniu -g ./sub/libsaito.a
gfortran
是: 编译并链接输入文件 shearSAITOniu.f
,./ ./shearSAITOniu
和 ./sub/libsaito.a
; 在生成的程序 ( -g
)中插入调试信息 , 并 在程序的入口处添加 符号 -o
。
将-o
被解释为选项的符号 -e
符号 ,并./shearSAITOniu
被解释为输入文件,该文件不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.