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