Makeを使用してインクリメンタルなPC-Lintを実行するにはどうすればよいですか
質問
makeを使用して、gimpel pc-lintをソースコードにサースコードに適用したいと思います。 Lintが最後に実行されてからソースファイルが変更された場合にのみ、ソースファイルに対して糸くずを実行してもらいたいです。誰かがこれをしていますか?どのように近づいていますか?
解決
一般的なパターンは、出力を作成することです(または、ない場合は人工出力を作成します)。
編集 ご了承ください $(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
他のヒント
GCC(または何でも)が呼び出されるたびに、コンピレーションルールにLintコンピレーションを追加できます。これにより、テストまたは使用する前に、コードの問題がすぐに表示されます。一方、これは、より大きなプロジェクトではあまりにも遅すぎます。
私は通常、それらをチェックする前にプロジェクトを並べています。したがって、私はチェックアウトされたすべてを覆う小さなスクリプトを作りました。穏やかなプラットフォーム(適切なサーバー上のSVNなど)がある場合、これはサーバーによって実行される可能性があるため、ユーザーはLINTが終了するのを待たずに作業できます。
所属していません StackOverflow