我想使用Make以增量方式将Gimpel PC-Lint应用于我的源代码。我希望它只对源文件运行lint,如果源文件自上次运行lint以来已更改。有人这样做吗?你是如何接近它的?
答案 0 :(得分:4)
常见的模式是创建输出(如果没有则创建人工输出)。
修改请注意,$(LINT) $< > $@
会扩展为lint test.cpp > test.lint
(将输出重定向到该文件)
E.g。
%.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
答案 1 :(得分:1)
只要调用gcc(或其他),就可以将lint编译添加到编译规则中。这将在测试或使用之前立即提出代码的任何问题。另一方面,对于较大的项目来说,这将太慢了。
我经常在检查之前将我的项目搞定。因此我制作了一个小脚本,我将所有已经检查过的内容放在一边。如果你有一个温和的平台(例如svn在合适的服务器上),这甚至可以由服务器完成,因此用户可以在不必等待lint完成的情况下继续工作。