【发布时间】:2012-10-25 21:07:17
【问题描述】:
我希望我的 make 目标依赖于执行文件。例如我有简单的makefile:
a.out: test.cpp
gcc test.cpp
我想要这样的东西:
a.out: test.cpp, `which gcc`
gcc test.cpp
这意味着更改您的 gcc(特别是更新)将导致 a.out 的重建(即使 test.cpp 没有更改)。
但它看起来像一个不规范的解决方案,因为您应该为该规则工具中使用的每个规则添加一个额外的先决条件。
这个问题还有其他解决方案吗?
【问题讨论】:
-
解决办法是,当你更改
gcc版本时,你通常知道。这不是定期进行的更改,在开发过程中很少发生。因此,当用户知道gcc发生变化时,他/她可以发出make clean命令在下一个make上重建所有内容。 -
另外,请注意,仅当您当前使用的 GCC 自上次构建程序以来已被修改时才会触发重新编译,而不仅仅是因为它与您上次使用的程序不同。
-
谢谢!我当然明白,这正是我想要的。