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++ 代码中存在语法错误时才会出现该错误

我的makefile似乎还可以:

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

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

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

flymake 中的 CFGERR 表示 make 过程没有成功运行。并不是说有编译错误,而是进程没有启动,或者意外退出,或者没有正常完成。

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

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

祝你好运。

于 2010-11-18T00:28:48.777 回答