我在cygwin中创建一个make项目。
src = $(shell ls | grep .cpp)
obj = $(src:%.cpp=%.o)
$(page_timeout): $(obj)
$(cc) -o -D BUILD_TYPE $(page_timeout) $(obj)
$(synchronize): $(obj)
$(cc) -o -DBUILD_TYPE=2 $(synchronize) $(obj)
您可以发现我从makefile宏定义中尝试了2个。但是它们都不起作用。这意味着g ++不知道BUILD_TYPE是否符合要求。
最后,我在编译前通过config CXXFLAGS为c ++定义了Build_type。
主make文件中的详细信息。
$(page_timeout):
$(MAKE) clean
$(MAKE) -f make_page.mk objs
$(cc) -o $(page_timeout) $(obj)
$(inquiry):
$(MAKE) clean
$(MAKE) -f make_inquiry.mk objs
$(cc) -o $(inquiry) $(obj)
$(synchronize):
$(MAKE) clean
$(MAKE) -f make_sync.mk objs
$(cc) -o $(synchronize) $(obj)
make_page.mk中的详细信息
cc = g++
deps = $(shell ls | grep .h)
src = $(shell ls | grep .cpp)
obj = $(src:%.cpp=%.o)
#%.o: %.c $(deps)
# $(cc) -c $ -DBUILD_TYPE=1 $@
CXXFLAGS += -DBUILD_TYPE=0
objs: $(obj)
echo "Pagetimeout build complete"