用 Makefile 记录编译次数
如果您喜欢不用 IDE 写代码, Makefile 可能是您无法避免的东西。然而用朴素的 make 自动记录编译次数, 实现起来可能需要一些技巧。
我所见到的大多数解决方案都依赖於专门的脚本, 这种方法既不优雅也不便於移植。这裡我将给出我的方法, 这个方法只依赖 echo 和 grep (当然, 还有 GNU make), 这些工具几乎在所有平台上都可以使用。
利用 make 计数的主要障碍在於它缺乏数值运算。尽管人们通常用数码表示数字, 但数字也可以利用反覆出现的同一个符号来编码——比如, 两个苹果携带了信息 ‘2’。
因此, 我们可以让 make 做它能做的最简单的事情——每次向一个文件中添加一个固定的符号——然後用 grep 来统计这个符号出现的次数, 也就是编译次数。
下面是一个完整的 Makefile, 供您尝试。它利用文件 .BuildCounter 来存储编译次数, 並向文件 BuildCount.inc 写入一行 BuildNumber = N;, 其中 N 为编译次数。
__COUNTER_FILE__ = .BuildCounter __COUNTER_INC_FILE__ = BuildCount.inc ifeq ($(wildcard $(__COUNTER_FILE__)),) $(shell echo > $(__COUNTER_FILE__)) endif $(shell echo $$ >> $(__COUNTER_FILE__)) $(shell echo BuildNumber = $(shell grep -c -F $$ $(__COUNTER_FILE__))\; > $(__COUNTER_INC_FILE__)) default: @more $(__COUNTER_INC_FILE__)
单击此处下载该文件。

The 用 Makefile 记录编译次数 by Subacme, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
赞助商链接
您的支持让您喜欢的网站更好地发展。
页面右侧尚有更多赞助商链接。如果您感兴趣, 请别犹豫单击它们。
在 Twitter 上跟踪 Subacme





