繁体   English   中英

编译FORTRAN程序时出现问题

[英]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

但不一定是您尚未发现的其他错误。

这是该错误的原因:

-ef77编译器的选项,表示: 接受扩展长度的输入源行

-o filenamef77gfortran编译器的选项,这意味着: 创建输出文件“ filename”

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

对于f77gfortran编译器,在命令行上出现的文件名前都没有-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM