最近でるflymakeのエラーがウザい
OpenSolaris勉強会でメモリまわりのお話を聞きつつ、illumosのカーネルコードを追っかける事が多くなった今日この頃ですが、最近、私のemacsがCのソースファイルを開くと以下のエラーを吐くようになってしまいました。
Flymake: Configuration error has occurred while running (make -s -C ./ CHK_SOURCES=ioctl_app_flymake.c SYNTAX_CHECK_MODE=1 check-syntax). Flymake will be switched OFF >これがウザい、いつか直そうと思いつつ、面倒くさいので放置していましたが、あまりにウザいので、修理を決意。
check-syntaxを書けよ
結論からいうと、Makefileに「check-syntax」ターゲットが無いのが原因だったらしい。なので、Makefileに書いてみた
CFLAGS += -Wall CFILES = devone.c obj-m += devone.o sample-objs := $(CFILES:.c=.o) all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean check-syntax: gcc -o null -Wall -Wextra -pedantic -fsyntax-only $(CHK_SOURCES)
その後、Cのソースファイルを開いてみるとエラーは出ません
まぁそれはいいとして、今までのソースのために全部にMakefileを作成しそれを書くのは無理なので、emacs側にcheck-syntaxが実行できない場合(やるんだけどエラーを返してきた場合)、そのチェックを無視するように、emacsの設定ファイルに追加する。
(defadvice flymake-post-syntax-check (before flymake-force-check-was-interrupted) (setq flymake-check-was-interrupted t)) (ad-activate 'flymake-post-syntax-check)
こんな感じで追加してやると、Makefileが無くてもエラーが出ない、これで快適にコードを追っかけることができます、意味分からんが...
0 件のコメント:
コメントを投稿