我想使用Make以增量的方式将Gimpel -Lint应用到我的源代码中。我希望它只对源文件运行lint,如果源文件自上次运行lint以来发生了变化。有人在这么做吗?你是如何接近它的?
发布于 2011-12-06 20:34:44
常见的模式是创建输出(如果没有输出,则创建人工输出)。
编辑请注意,$(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-06 20:29:04
只要调用了gcc (或其他任何东西),就可以将lint编译添加到编译规则中。这会在测试或使用代码之前立即引发任何问题。另一方面,在更大的项目中,这将是太慢了。
我通常在签入我的项目之前对它们进行linting。因此,我编写了一个小脚本,在其中我将所有已签出的内容都进行了lint。如果您有一个温和的平台(例如,在合适的服务器上的svn ),这甚至可以由服务器完成,这样用户就可以继续工作,而不必等待lint完成。
https://stackoverflow.com/questions/8399735
复制相似问题