【发布时间】:2017-11-27 13:19:51
【问题描述】:
我正在尝试使用 GNU Make 的模式规则从一个充满头文件的目录中自动生成预编译头文件。然而,尽管这个用例很简单,我还是遇到了错误。
HEADERS=$(patsubst %.h,%.h.gch,$(wildcard *.h))
CXX=g++
WARNINGS=-Wno-unused-result -Wall
WARNINGSH=-w
CFLAGS=-c -g -flto=8 -fuse-linker-plugin -Ofast -std=c++11 -pthread $(WARNINGS)
HFLAGS= $(CFLAGS) $(WARNINGSH)
all: $(HEADERS)
debug: CFLAGS=-c -g3 -ggdb -O0 -std=c++11 -pthread -DSTACK_TRACE $(WARNINGS) \
-D_GNU_SOURCE
debug: HFLAGS=$(CFLAGS) $(WARNINGSH)
debug: clean all
%.h.ghc : %.h
$(CXX) $(HFLAGS) $<
clean:
rm -f *.gch
运行$ make会报错
make: *** No rule to make target 'my_header.h.gch', needed by 'all'. Stop.
我在这里错过了什么?
【问题讨论】: