4

我想使用 Make 以增量方式将 Gimpel PC-Lint 应用于我的源代码。如果自上次运行 lint 以来源文件已更改,我希望它仅对源文件运行 lint。有人这样做吗?你是如何接近它的?

4

2 回答 2

4

常见的模式是创建输出(如果没有,则创建人工输出)。

编辑注释,$(LINT) $< > $@将扩展为lint test.cpp > test.lint(将输出重定向到该文件)

例如

 %.o: %.cpp | %.lint
      S(CC) -o $@ $(CPPFLAGS) $<

 %.lint: %.cpp
      $(LINT) $< > $@

或者对于没有输出的进程:

 %.o: %.cpp | %.emailsent
      S(CC) -o $@ $(CPPFLAGS) $<

 %.emailsent: %.cpp
      $(DOEMAIL) $^   # no output from mail sender
      touch $@        # won't be reached DOEMAIL returned error
于 2011-12-06T12:34:44.050 回答
1

每当调用 gcc(或其他)时,您都可以将 lint 编译添加到编译规则中。在测试或使用代码之前,这会立即引发代码的任何问题。另一方面,这对于一个更大的项目来说太慢了。

我通常在签入之前对我的项目进行 linting。因此,我制作了一个小脚本,在其中对已签出的所有内容进行 lint。如果您有一个温和的平台(例如,合适的服务器上的 svn),这甚至可以由服务器完成,因此用户可以在无需等待 lint 完成的情况下工作。

于 2011-12-06T12:29:04.253 回答