我正在尝试使用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的内容,以便让我看看发生了什么?
答案 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)