MakeFile错误" / usr / bin / f77:非法选项:-autodouble"

时间:2017-06-11 22:28:09

标签: linux makefile fortran

我写了一个make文件如下:

COMPFLAGS     = -O3 -autodouble  

CFLAGS        = $(COMPFLAGS)
PFLAGS        = $(COMPFLAGS)
FFLAGS        = $(COMPFLAGS)
CCFLAGS       = $(COMPFLAGS)
CXXFLAGS      = $(COMPFLAGS)

LD  =   ifort

LDFLAGS       = $(COMPFLAGS)

MAKEFILE      = Makefile

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

PROGRAM       = f1

all:        $(PROGRAM)

%.o:    %.f90
     @$(LD) $(COMPFLAGS) -c $<

$(PROGRAM):     $(OBJS)  $(MAKEFILE)

        @$(LD) $(LDFLAGS) $(OBJS)  -o $(PROGRAM)
        @echo "done"

clean:
        @rm -f $(OBJS) core

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

f77 -O3 -autodouble    -c -o f1.o f1.f
/usr/bin/f77: Illegal option: -autodouble
make: *** [f1.o] Error 255

我应该注意,没有*.f个文件,所有文件都是*.f90

你能告诉我哪里弄错了吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

这看起来很不寻常:

LD  =   ifort
...

%.o:    %.f90
     @$(LD) $(COMPFLAGS) -c $<

LD是链接器,而不是编译器。也许是这样的事情:

CC = ifort
...

%.o: %.f90
     @$(CC) -std=f90 $(COMPFLAGS) -c $<

您可能还需要-x选项来告诉机器是Fortran 90而不是要预处理的东西:

%.o: %.f90
     @$(CC) -x f90 -std=f90 $(COMPFLAGS) -c $<