gpt4 book ai didi

makefile - 强制 gnu make 重建受编译器定义影响的对象

转载 作者:行者123 更新时间:2023-12-03 10:54:25 25 4
gpt4 key购买 nike

我有一个在命令行中接受选项的 makefile

make OPTION_1=1

根据该值,它将向对象子集添加额外的编译器定义。
ifeq ($(OPTION_1), 1)
CC_FLAGS += -DOPTION_1_ON
endif

定义中的更改会影响包含的头文件内容 - stub 或实现会暴露给目标文件。

如何让 make 重建受此选项更改“影响”的文件?

最佳答案

我使用一个文件来记住这些选项的最后一个值,如下所示:

.PHONY: force
compiler_flags: force
echo '$(CC_FLAGS)' | cmp -s - $@ || echo '$(CC_FLAGS)' > $@
cmp || echo位表示文件 compiler_flags只有在设置改变时才会被触动,所以现在你可以写一些类似的东西
$(OBJECTS): compiler_flags

导致 $(OBJECTS) 的重建每当编译器标志发生变化时。每次运行 make 时都会执行 compiler_flags 的规则,但会重建 $(OBJECTS)只有在 compiler_flags 时才会触发文件实际上被修改了。

关于makefile - 强制 gnu make 重建受编译器定义影响的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com