cygwin中g ++的宏定义问题

问题描述 投票:0回答:1

我在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是否符合要求。

g++ cygwin gnu-make
1个回答
0
投票

最后,我在编译前通过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"
© www.soinside.com 2019 - 2024. All rights reserved.