Makefile生成器创建两个文件

巴里

我有一个生成器程序,可以创建两个版本文件,例如ver.hver.cpp我最终的构建目标取决于这两个文件,而构建这两个文件的规则是一个程序。如果我这样做:

build : ver.h ver.cpp

ver.h ver.cpp :
    ./gen/version/program

则并行构建可能会运行program两次,这虽然不错,但也不过分。我想我可以让它们都依赖于假目标:

ver.h ver.cpp : do-version-impl

do-version-impl:
    ./gen/version/program

.PHONY : do-version-impl

这是最好的方法吗?必须引入一个假音规则来做到这一点,这听起来有点可笑。

马克·加勒克

使用假目标作为前提是一个坏主意。program即使ver.*文件存在也将运行,这是一个误报错误。

更巧妙的是,仅当GNU Make文件是配方规则的目标时,才保证更新它的文件时间戳。因此,即使program始终运行,依赖于ver.*文件的所有内容也可能根本无法更新!

我认为最好不要为每个目标组成不自然的模式,而要明确:

您正在生成一个“主”文件,即ver.cpp;对另一种使用“无操作”配方,可以将其放在同一行上,如下所示:

ver.h: ver.cpp ;
ver.cpp: Makefile
    ./gen/version/program

该方法从您编写的内容开始,但增加了非常重要的;

如果您没有“主”文件的自然候选人,那么我认为最好使用“前哨”:

ver.h ver.cpp: sentinel ;

sentinel: Makefile
    ./gen/version/program
    touch $@

同样,此方法与您的方法之一相似,但非常重要的是,它不使用假音,而是使用真实文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Makefile生成器创建两个文件

来自分类Dev

从生成器创建两个串联的数组

来自分类Dev

我想创建一个生成器来生成任意两个输入生成器的交集

来自分类Dev

来自两个itertools生成器的组合

来自分类Dev

两个同时生成器函数,Python

来自分类Dev

元组生成器的两个不同列表

来自分类Dev

如何计算由随机数生成器的两个组数据创建的2个集合的总和?

来自分类Dev

当 next 方法应该返回两个生成器的值时,如何为类创建 next 方法?

来自分类Dev

在报表生成器3中联接两个数据集以创建单个tablix

来自分类Dev

如何使用查询生成器在Laravel中计算两个相关日期?

来自分类Dev

无法使用laravel查询生成器来联接两个表的结果

来自分类Dev

嵌套两个流生成器会导致状态错误

来自分类Dev

使用连接的两个不同列的Mysql减总和-使用Symfony查询生成器

来自分类Dev

生成器,可确保列表中两个项目之间的最小距离

来自分类Dev

Mersenne Twister随机生成器-两个并行运行的VS2010

来自分类Dev

我有两个生成器,我希望将依赖关系链接到

来自分类Dev

如何使用 CodeIgniter 中的查询生成器从两个表中选择数据?

来自分类Dev

如何制作一个行生成器表达式来生成这两个不同的列表

来自分类Dev

如何将具有两个生成器的列表推导重新表达为具有一个生成器的两个列表推导,并得到相同的结果?

来自分类Dev

从生成器创建列表

来自分类Dev

即阅文生成器 - 如何为文章选择两个包含内容的区域/元素?

来自分类Dev

两个数字之间的随机数生成器-MatLab

来自分类Dev

两个数据集的python生成器表达式

来自分类Dev

两个数字之间的随机数生成器-MatLab

来自分类Dev

从单个循环创建多个生成器

来自分类Dev

从生成器创建熊猫DataFrame?

来自分类Dev

熊猫:从元组生成器创建系列

来自分类Dev

从单个循环创建多个生成器

来自分类Dev

熊猫:从元组生成器创建系列

Related 相关文章

  1. 1

    Makefile生成器创建两个文件

  2. 2

    从生成器创建两个串联的数组

  3. 3

    我想创建一个生成器来生成任意两个输入生成器的交集

  4. 4

    来自两个itertools生成器的组合

  5. 5

    两个同时生成器函数,Python

  6. 6

    元组生成器的两个不同列表

  7. 7

    如何计算由随机数生成器的两个组数据创建的2个集合的总和?

  8. 8

    当 next 方法应该返回两个生成器的值时,如何为类创建 next 方法?

  9. 9

    在报表生成器3中联接两个数据集以创建单个tablix

  10. 10

    如何使用查询生成器在Laravel中计算两个相关日期?

  11. 11

    无法使用laravel查询生成器来联接两个表的结果

  12. 12

    嵌套两个流生成器会导致状态错误

  13. 13

    使用连接的两个不同列的Mysql减总和-使用Symfony查询生成器

  14. 14

    生成器,可确保列表中两个项目之间的最小距离

  15. 15

    Mersenne Twister随机生成器-两个并行运行的VS2010

  16. 16

    我有两个生成器,我希望将依赖关系链接到

  17. 17

    如何使用 CodeIgniter 中的查询生成器从两个表中选择数据?

  18. 18

    如何制作一个行生成器表达式来生成这两个不同的列表

  19. 19

    如何将具有两个生成器的列表推导重新表达为具有一个生成器的两个列表推导,并得到相同的结果?

  20. 20

    从生成器创建列表

  21. 21

    即阅文生成器 - 如何为文章选择两个包含内容的区域/元素?

  22. 22

    两个数字之间的随机数生成器-MatLab

  23. 23

    两个数据集的python生成器表达式

  24. 24

    两个数字之间的随机数生成器-MatLab

  25. 25

    从单个循环创建多个生成器

  26. 26

    从生成器创建熊猫DataFrame?

  27. 27

    熊猫:从元组生成器创建系列

  28. 28

    从单个循环创建多个生成器

  29. 29

    熊猫:从元组生成器创建系列

热门标签

归档