使用一个规则Makefile生成多个文件

时间:2016-11-09 01:12:27

标签: makefile

如果之前已经提出这个问题,我很抱歉,我研究过并找不到合适的答案。

我有一个C ++项目,我必须使用make编译。

我想要的输出是使用一个make文件的三个不同的可执行文件,但我必须使用模式规则来编译它。

该项目由每个可执行文件的三个源文件组成,所有这些文件都使用我编译成目标文件的头文件中的函数。

我已设法将它们全部编译,但为每个文件使用单独的规则

一条规则的例子:

file1: file1.cpp header.o header.h
      g++ $(FLAGS) file1.cpp header.o -o file1

感谢。

编辑:

file1: file1.cpp header.o header.h
  g++ $(FLAGS) file1.cpp header.o -o file1

file2: file2.cpp header.o header.h
  g++ $(FLAGS) file2.cpp header.o -o file2

file3: file3.cpp header.o header.h
  g++ $(FLAGS) file3.cpp header.o -o file3

这些是可执行文件

header.o: header.cpp header.h
      g++ $(FLAGS) -c header.cpp -o header.o

这是具有函数

的目标文件

FLAGS变量包括存储头文件的目录。

1 个答案:

答案 0 :(得分:1)

Make built-in rules用于编译和链接,您需要做的就是使用正确的变量和规则格式,以下内容应该有效

targets  := file1 file2 file3
CPPFLAGS := -Isome_include_dir

.PHONY: all 
all: $(targets)
$(targets): CC := $(CXX)
$(targets): %: %.o header.o
%.o: header.h