簡體   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