【发布时间】:2021-06-07 10:23:31
【问题描述】:
例如,我想传递我在 main.c 中的值。
#define VERSION_MAJOR 1
#define VERSION_MINOR 1
#define VERSION_PATCH 0
我可以在 makefile 变量中为我的 *.exe 版本获取这些值 例如,然后我的 exe 名称将看起来 program_version_$(VERSION_MAJ)$(VERSION_MIN)$(VERSION_PAT).exe
【问题讨论】:
-
不,这通常是不可能的(或者说有点困难和复杂),但反过来非常很容易。也许你应该这样做?
-
与其乱搞这些奇怪的东西,也许开始使用实际的版本控制?我不太明白为什么 make 文件需要知道它正在构建的版本。相反,它可以告诉程序它是哪个版本。
-
如果您使用 GNU make 并拥有诸如
sed等 POSIX 工具,您可以编写一个$(shell ...)函数,该函数使用 shell 操作从文件中提取这些值。确实,将值放入 makefile 并让 makefile 将它们写入源比其他方式更简单,但如果你有一个体面的 shell 环境,这两种方式都可以完成。