首页 > 解决方案 > Makefile 模式将所有源文件编译为可执行文件

问题描述

我希望我的 makefile 能够识别和构建目录中的每个源文件。

.f 文件及其可执行文件都存在于当前目录中。所有源文件都是简短的、独立的部分(没有相互链接)。我希望可执行文件的名称与源文件 sans .f (foo.f -> foo) 的名称相同

以下不起作用:

FC=gfortran

% :: %.f
    ${FC} -Wall $< -o $@

当我运行 Make 我得到 make: *** No targets. Stop.

我怎样才能做我想做的事?

标签: makefile

解决方案


以下makefile可以满足我的要求:

FC=gfortran
FFLAGS=-Wall

SRC = $(wildcard *.f)
EXE = $(SRC:.f=)

all : $(EXE)

推荐阅读