Makefile删除了我的fortran程序

Makefile删除了我的fortran程序,makefile,Makefile,嗨,我以前从未写过makefile,但我在fortran90最终项目中尝试过,makefile似乎删除了我的主程序。这是我的makefile # Sample makefile for several modules # FC = gfortran final.x: subs.o func.o maina.o gfortran -o final.x subs.o func.o maina.o subs.o: subs.f90 gfortran -c subs.f9

嗨,我以前从未写过makefile,但我在fortran90最终项目中尝试过,makefile似乎删除了我的主程序。这是我的makefile

# Sample makefile for several modules
#
FC = gfortran
final.x: subs.o func.o maina.o
        gfortran -o final.x subs.o func.o maina.o
subs.o: subs.f90
        gfortran -c subs.f90
func.o: func.f90
        gfortran -c func.f90
maina.o: maina.f90
        gfortran -c maina.f90
运行此操作后,我的maina.f90被删除,并且我没有副本。这是它运行时显示的内容。(第一个输出是当我运行它并在subs中发现错误时,在修复这些错误后,我得到了第二个输出)

有人知道为什么这个文件删除了我的maina.f90吗,或者(尽管可能不太可能)如何找回我的工作吗


编辑-我应该补充一点,我在这台计算机上没有管理员或sudo权限

“如何找回我的工作?”-使用类似于梨形Recuva的程序。在将来,使用像Git这样的源代码管理。你确定正在使用的是
makefile
make
调用的输出并不是我所期望的干净构建。只有
subs.o
被重新编译这一事实表明
func.o
maina.o
已经是最新的,所以我怀疑是其他什么东西破坏了
maina.f90
——而不是
makefile
。抱歉,这是第一次编译makefile的第二次,subs中有一个错误,所以我不得不重新编译它,只用于潜艇。我将编辑这个问题,以免误导FWIW,这里显示的makefile不可能删除
maina.f90
文件。因此,如果该文件消失了其他内容,而不是makefile或make调用的命令(假设您没有使用行为与标准文件不同的奇怪的
gfortran
),则将其删除。事实上,当调用上述
make
命令时,该文件必须存在,否则它将失败(考虑到此处包含的makefile)。
$ make
gfortran -o final.x subs.o func.o maina.o
subs.o: In function `__subs_MOD_gauss':
subs.f90:(.text+0x350): undefined reference to `f_'
subs.f90:(.text+0x366): undefined reference to `f_'
subs.o: In function `__subs_MOD_simp':
subs.f90:(.text+0x434): undefined reference to `f_'
subs.f90:(.text+0x4a2): undefined reference to `f_'
subs.f90:(.text+0x51b): undefined reference to `f_'
subs.o:subs.f90:(.text+0x571): more undefined references to `f_' follow
collect2: ld returned 1 exit status
make: *** [final.x] Error 1

$ make
gfortran -c subs.f90
gfortran -o final.x subs.o func.o maina.o