f90_simple不需要制作目标f1.o的规则

时间:2017-06-03 20:36:22

标签: linux makefile fortran

我有以下makefile。它适用于.f.c文件,但是当我有.f90文件并希望使用ifort编译它时不起作用? 你能告诉我应该改变的地方和方式吗? 谢谢你

FCOMPFLAGS    =    -O -ffixed-line-length-132
CCOMPFLAGS    =    -O         

FFLAGS        =    $(FCOMPFLAGS) -fsecond-underscore
CFLAGS        =    $(CCOMPFLAGS)
LDFLAGS       =    $(FCOMPFLAGS)

LD            =    gfortran
FC            =    gfortran

MAKEFILE      =    Makefile
PROGRAM1      =    f1 

OBJS          =    f1.o      \
                   f2.o      \
                   f3.o                    

all:        $(PROGRAM1)    

$(PROGRAM1): $(OBJS) $(MAKEFILE)
    $(LD) $(LDFLAGS) $(OBJS) -o $(PROGRAM1)

clean:         @rm -f $(OBJS) core

当我执行“make”时,我收到以下错误,

make: *** No rule to make target `f1.o', needed by `f90_simple'.  Stop.

似乎我的makefile无法识别* .f90文件,我的另一个问题是我们是否有在iffile中使用ifrot编译器的标志 感谢

1 个答案:

答案 0 :(得分:1)

您需要添加隐式规则:

%.o : %.f90
<tab>$(FC) $(FCOMPLAGS) -c $<