如何在编译之前告诉自动生成的 Makefile 执行脚本?

Posted

技术标签:

【中文标题】如何在编译之前告诉自动生成的 Makefile 执行脚本?【英文标题】:How to tell automake generated Makefile to execute a script before compiling? 【发布时间】:2011-12-21 21:46:16 【问题描述】:

有没有办法告诉 automake 你想在每次编译之前执行一个命令(比如在 .cpp 文件中的触摸)?

谢谢。

【问题讨论】:

您能详细说明一下实际用例吗? @jørgensen,也许这是一个办公室恶作剧。如果触摸了正确的文件,恶作剧的对象可以整天在终端输入“make”... 实际情况:我们想强制重新编译一些.cpp,即使它们没有被触及,以启动一些宏。事实上,这只是让我发现我不知道如何在开始编译之前使用 Automake 启动任何命令的借口。 【参考方案1】:

我不知道您为什么要这样做,但您可以告诉make 想象文件已过期。使用AM_MAKEFLAGS

AM_MAKEFLAGS = -W$(top_srcdir)/src/why_are_you_doing_this.cc

【讨论】:

有没有办法以我所缺少的更快/更顺畅/更智能的方式获得相同的结果? @St0rM:为您的问题添加更多上下文,也许社区可以找到更有用的解决方案。【参考方案2】:

试试:

.PHONY : touchcpp
touchcpp :
    touch foo.cpp
all : touchcpp

这听起来像是一种可能的永久构建方式......

【讨论】:

以上是关于如何在编译之前告诉自动生成的 Makefile 执行脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过自动生成的makefile 看各个文件的依赖关系

在LINUX系统中编程序,makefile是怎么生成的,是通过GCC或GDB编译联接生成的吗????

Makefile详解

升级构建工具,从Makefile到CMake

升级构建工具,从Makefile到CMake

makefile相关(+elf)