Makefile - 从源生成目标

时间:2011-08-14 13:28:35

标签: makefile

我正在尝试使用make构建越来越多的.cpp文件。它们都驻留在子目录src /中。我想将每个文件编译成它自己的可执行文件,驻留在bin /中。 这是我到目前为止所尝试过的,但它不起作用,而且由于我是新手,所有的模式,变量等使得很难确定哪些内容被扩展为什么等等。

CXX = g++
CXXFLAGS = -Wall -Wextra -pedantic

SRC = $(wildcard src/*.cpp)
BIN = $(patsubst src/%.cpp,bin/%,$(SRC))

all: $(BIN)

%: scr/%.cpp
    $(CXX) $(CXXFLAGS) $< -o $@

另外,有没有办法只显示BIN的内容,以便让我看看发生了什么?

1 个答案:

答案 0 :(得分:0)

这是你的最终扩展看起来像

file: scr/bin/file.cpp

为什么不这样做?

BIN = $(patsubst src/%.cpp,%,$(SRC))

all: $(addprefix bin/, $(BIN))

bin/% : src/%
    $(GCC) $(FLAGS) $< -o $@

我觉得有用吗?

至于显示BIN的内容

all: $(addprefix bin/, $(BIN))
    @echo $(BIN)