gpt4 book ai didi

makefile - 使用自动工具构建时如何生成源文件

转载 作者:行者123 更新时间:2023-12-02 13:37:26 25 4
gpt4 key购买 nike

使用 Make,我会做类似的事情

generated.c: input.txt generator
./generator input.txt > generated.c

我如何从自动工具中获得同等的功能? (在清理时删除 generated.c 也是一个好处)。

最佳答案

我假设 input.txt 是一个已分发的源文件,您不想想要分发 generate.c (即,它必须由每个用户构建),并且 generator 也是由您的包构建的程序。

EXTRA_DIST = input.txt
bin_PROGRAMS = prog
noinst_PROGRAMS = generator

# Source files for the generator
generator_SOURCES = generator.c ...

# Source files for prog
prog_SOURCES = prog.c ...
nodist_prog_SOURCES = generated.c

# generated.c is a built source that must be cleaned
CLEANFILES = generated.c

# Build rule for generated.c
generated.c: $(srcdir)/input.txt generator$(EXEEXT)
./generator$(EXEEXT) $(srcdir)/input.txt

在某些情况下,例如生成头文件时,在编译其余源代码之前生成文件非常重要,这样就可以将其包含在内。在这种情况下,您还应该在变量 BUILT_SOURCES 中列出生成的文件(Automake 手册在其 Built sources section 中有很多示例。在上述情况下,没有必要。

编辑:我已修复上述 Makefile.am 示例,以将 generator 声明为未安装的程序。

关于makefile - 使用自动工具构建时如何生成源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284918/

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