flymake-mode を使うと、ソース保存時にコンパイルエラーとなる箇所を検
出してくれるらしい。とりあえず試してみた。

設定方法

  1. Makefile に check-syntax という名前のルールを追加する。$(CC) と
    $(CFLAGS) は各自でセットしてくれ。
check-syntax:
	$(CC) $(CFLAGS) -fsyntax-only $(CHK_SOURCES)
  1. ソースファイルを開き、M-x flymake-mode する。コンパイルエラーに
    なるような修正をして保存。→エラー箇所の背景色がピンクになった。

解説

flymake.el の flymake-get-make-cmdline() によると、例えば hoge.c の
場合、保存時に裏で以下のコマンドが実行されるらしい。そのため、(1)
で check-syntax ルールを追加したというわけ。
|make -s -C . CHK_SOURCES=hoge.c SYNTAX_CHECK_MODE=1 check-syntax

おまけ

C や C++ ソースを開いたときに、自動的に flymake-mode を有効にする設
定は以下のとおり。

(add-hook 'c-mode-common-hook (lambda () (flymake-mode t)))

URL: http://www.02.246.ne.jp/~torutk/cxx/emacs/flymake.html