Makefile导致`gfortran:错误:没有这样的文件或目录`

时间:2015-11-30 13:50:01

标签: makefile fortran gfortran

我正在尝试使用gfortran编译此代码。

生成文件:

<form name='userForm'>
  <div ng-repeat="person in people">
    <input ng-class="{ 'has-error' : userForm.firstName{{$index}}.$invalid }" type="text" class="form-control" ng-model="passenger.firstName" id="firstName{{$index}}" name="firstName{{$index}}" required />
  </div>
</form>

它不起作用

# makefile for BIRRP

FC = gfortran
FCFLAGS = -g -fbounds-check
FLFLAGS = -g -fbacktrace
SRC = birrp.f  coherence.f  dataft.f  diagnostic.f  fft.f  filter.f  math.f  rarfilt.f  response.f  rtpss.f  utils.f  weight.f  zlinpack.f

# "make" builds all

PROGRAM = birrp
all: $(PROGRAM)
$(PROGRAM): $(SRC)
    $(FC) $(FCFLAGS) $@ $<

%.o: %.f
    $(FC) $(FLFLAGS) -o $@ $^

clean:
    rm -f *.o 

我正在使用gfortran编译器。我从我的其他程序中复制了Makefile。

添加gfortran -g -fbounds-check birrp birrp.f gfortran: error: birrp: No such file or directory Makefile:13: recipe for target 'birrp' failed make: *** [birrp] Error 1 后:

-o

现在它只是编译

FC = gfortran
FCFLAGS = -g -c -fbounds-check
FLFLAGS = -g -fbacktrace
SRC = birrp.f coherence.f dataft.f diagnostic.f fft.f filter.f math.f rarfilt.f response.f rtpss.f utils.f weight.f zlinpack.f

# "make" builds all

PROGRAM = birrp
all: $(PROGRAM)

$(PROGRAM): $(SRC)
    $(FC) $(FCFLAGS) -o $@ $<

%.o: %.f
    $(FC) $(FLFLAGS) -o $@ $^

clean:
    rm -f *.o 

为什么?

1 个答案:

答案 0 :(得分:2)

gfortran birrp 解释为源文件,但您希望将其作为outfile

man gfortran

表示outfile-o参数指定,因此您的目标会变为:

$(PROGRAM): $(SRC)
    $(FC) $(FCFLAGS) -o $@ $<

但这并不能解决你所有的问题。根据{{​​3}} $<指定第一个依赖关系,而不是全部。您总是希望拥有整个依赖项列表,即$^

所以你的目标就变成了这个:

$(PROGRAM): $(SRC)
    $(FC) $(FCFLAGS) -o $@ $^