1

openSuse 11 の emacs 22.3.1 で flymake を使用しようとしていますが、次のエラーが発生しました。

Making completion list...
file /home/ruggero/makefily/prova.cpp, init=flymake-simple-make-init
flymake is running: nil
file /home/ruggero/makefily/prova.cpp, init=flymake-simple-make-init [3 times]
found buildfile at ~/makefily/
create-temp-inplace: file=/home/ruggero/makefily/prova.cpp temp=/home/ruggero/makefily/prova_flymake.cpp
saved buffer prova.cpp in file /home/ruggero/makefily/prova_flymake.cpp
started process 8920, command=(make -s -C ./ CHK_SOURCES=prova_flymake.cpp SYNTAX_CHECK_MODE=1 check-syntax), dir=~/makefily/
received 117 byte(s) of output from process 8920
file /home/ruggero/makefily/prova.cpp, init=flymake-simple-make-init
parsed '[1;31mprova_flymake.cpp:[0m[1;31m1:[0m[1;31m1: error: unterminated comment[0m', no line-err-info
parsed 'make: *** [check-syntax] Error 1', no line-err-info
file /home/ruggero/makefily/prova.cpp, init=flymake-simple-make-init
process 8920 exited with code 2
cleaning up using flymake-simple-cleanup
deleted file /home/ruggero/makefily/prova_flymake.cpp
prova.cpp: 0 error(s), 0 warning(s) in 0.10 second(s)
switched OFF Flymake mode for buffer prova.cpp due to fatal status CFGERR, warning Configuration error has occured while running (make -s -C ./ CHK_SOURCES=prova_flymake.cpp SYNTAX_CHECK_MODE=1 check-syntax)

エラーは、C++ コードに構文エラーがある場合にのみ表示されます

私のメイクファイルは問題ないようです:

check-syntax:
    g++ -o nul -S $(CHK_SOURCES)

prova:
    g++ -o prova prova.cpp

.emacs もきれいにしようとしました

4

2 に答える 2

1

解決済み

makefly は color-gcc と互換性がありません

解決

check-syntax:
    /usr/bin/g++ -o nul -S $(CHK_SOURCES)

prova:
    g++ -o prova prova.cpp
于 2010-11-18T22:37:20.753 に答える
0

あなたのメイクはflymake内で正しく実行されていないと思います。

プロセスはエラーコード2で終了します。これは、emacsの外部でmakeを実行したときに取得する終了ステータスと同じではないと思います。

flymakeのCFGERRは、makeプロセスが正常に実行されなかったことを意味します。コンパイルエラーが発生したわけではありませんが、プロセスが起動しなかったか、予期せず終了したか、そうでなければ正常に完了しませんでした。

多分あなたはflymake-log-levelこの失敗したプロセスのためのより多くの診断を得るために立ち上がることができます。また、c ++のflymakeについてはわかりませんが、プロセスのすべての出力をキャプチャするバッファがある可能性があります。その場合は、バッファの内容を確認してください。これにより、障害に関する詳細が表示される場合があります。

たとえば、makeツールがemacsプロセス内でアクティブなパス上にない場合にCFGERRの問題が発生しました。パスを修正する(またはコンパイルコマンドで完全に指定する)ことで、CFGERRの落とし穴を回避できました。gccがemacs内で使用されるパス上にない場合にも、同様のエラーが発生する可能性があります。

幸運を。

于 2010-11-18T00:28:48.777 に答える