【发布时间】:2019-12-08 19:58:39
【问题描述】:
我有一个旧项目,在一个目录中包含几个 C++ 源文件和头文件,这些文件是使用 GCC 和 makefile 在 cygwin 中构建的。在编辑生成文件以将所有临时文件和输出文件移动到子目录时,构建目标文件的规则没有任何效果。
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $(BIN) $^
%.o: %.c
$(CXX) $(INC) $(CXXFLAGS) $@ -c -o $<
以下 makefile 仍然构建输出二进制文件,没有任何规则从源代码构建目标文件。
INC=-I.
CXX=g++
CXXFLAGS=-std=c++11 -Wall -Wextra -Wconversion -pedantic -O2 -g
LDFLAGS=
CLEAN_FILES=*.o *.out *.stackdump *.exe *.gcno *.gcda
BIN=app
SRC=$(wildcard *.cpp)
OBJ=$(SRC:%.cpp=%.o)
all: $(BIN)
$(BIN): $(OBJ)
.PHONY: clean
clean:
rm -f $(CLEAN_FILES)
这种自动行为叫什么?
【问题讨论】: