flymake CFGERR问题

时间:2010-11-10 23:07:21

标签: emacs flymake

我正在尝试在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 ++代码中存在语法错误

,则错误仅显示

我的makefile似乎没问题:

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

prova:
    g++ -o prova prova.cpp

我也试过清理我的.emacs

2 个答案:

答案 0 :(得分:1)

解决

makefly与color-gcc不兼容

解决方案

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

prova:
    g++ -o prova prova.cpp

答案 1 :(得分:0)

我认为你的make在flymake中运行不正常。

进程退出时出现错误代码2,我认为这与您在emacs之外运行make时获得的退出状态不同。

flymake中的CFGERR意味着make过程未成功运行。并不是存在编译错误,而是该进程未启动,或意外退出,或者未正常完成。

也许您可以调高flymake-log-level以获得针对此失败过程的更多诊断信息。另外:我不知道有关c ++的flymake,但是可能有一个缓冲区可以捕获进程的所有输出。如果是这样,请检查缓冲区的内容,这可能会显示有关故障的更多详细信息。

我有一个CFGERR问题,例如,当make工具不在emacs进程中处于活动状态的路径上时。修复路径(或在编译命令中完全指定它)避免了CFGERR陷阱。如果您的gcc不在emacs中使用的路径上,则可能会发生类似的错误。

祝你好运。