makefile:通过makefile将预处理器传递给g ++

makefile: passing preprocessor through makefile to g++

我看到前面的so posts 1,2等,我想在编译时传递一个预处理器指令。有了烤饼,我可以做到:

1
2
num_times = ARGUMENTS.get('c', 1)
env.Append(CCFLAGS = '-DNUM_TIMES=%d' % int(num_times))

我希望,也可以使用make。我想发布

1
make c=4

或者类似的。有人能推荐一种方法吗?我正在编译一个文件夹,该文件夹的子文件夹中有自己的生成文件。事先谢谢。


一个简单的方法是:

1
2
3
4
5
CFLAGS += -DNUM_TIMES=$(c)
export CFLAGS

all:
    $(MAKE) -C your_subfolder

make c=2通话,不要触摸子文件夹makefiles中的CFLAGS

另一种方法是在根文件夹中有一个Makefile部分,其中包含子目录makefiles(使用include)中include的所有常用设置。($(MAKE)确保向make提供的命令行参数也将传递给sub make。)