gpt4 book ai didi

c - GNU Make - 对非程序代码的依赖

转载 作者:太空狗 更新时间:2023-10-29 15:59:57 28 4
gpt4 key购买 nike

我正在编写的程序的要求是它必须能够信任配置文件。为此,我使用多种哈希算法在编译时生成文件的哈希值,这会生成一个以哈希值作为常量的 header 。

这方面的依赖关系非常简单,我的程序依赖于 config_hash.h,它有一个生成它的目标。

生成文件看起来像这样:

config_hash.h:
$(SH) genhash config/config_file.cfg > $(srcdir)/config_hash.h

$(PROGRAM): config_hash.h $(PROGRAM_DEPS)
$(CC) ... ... ...

我正在使用 gcc 的 -M 选项,这对于处理依赖关系非常有用。如果我的标题发生变化,我的程序将被重建。

我的问题是,我需要能够判断配置文件是否已更改,以便重新生成 config_hash.h。我不太清楚如何解释这种对 GNU make 的依赖。

我已经尝试将 config/config_file.cfg 列为 config_hash.h 的依赖项,并为 config_file.cfg 提供一个 .PHONY 目标,但没有成功。显然,我不能依赖 gcc 的 -M 开关来帮助我,因为配置文件不是任何目标代码的一部分。

有什么建议吗?不幸的是,我不能发布很多 Makefile,否则我会发布整个文件。

最佳答案

.PHONY 中声明文件是错误的。文件系统中不会检查此处列出的任何依赖项。只需将其列为哈希 header 的依赖项,然后从那里开始。

关于c - GNU Make - 对非程序代码的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890426/

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