Проблема с мухой CFGERR
Я пытаюсь использовать flymake на emacs 22.3.1 на openSuse 11, но я получил эту ошибку:
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++
мой make-файл выглядит нормально:
check-syntax:
g++ -o nul -S $(CHK_SOURCES)
prova:
g++ -o prova prova.cpp
Я также пытался очистить мой.emacs
2 ответа
решаемая
makefly несовместим с color-gcc
Решение
check-syntax:
/usr/bin/g++ -o nul -S $(CHK_SOURCES)
prova:
g++ -o prova prova.cpp
Я думаю, что ваша марка не работает должным образом внутри Flymake.
Процесс завершается с кодом ошибки 2, который, я думаю, не совпадает с состоянием выхода, которое вы получаете, когда запускаете make вне emacs.
CFGERR в flymake означает, что процесс make не прошел успешно. Не то, чтобы произошла ошибка компиляции, но процесс не запустился, неожиданно завершился или не завершился как обычно.
может ты сможешь flymake-log-level
чтобы получить больше диагностики для этого неудачного процесса. Также: я не знаю о flymake для C++, но может существовать буфер, который захватывает весь вывод процесса. Если это так, проверьте содержимое буфера, что может показать вам более подробную информацию о сбое.
У меня была проблема CFGERR, например, когда инструмент make не был на пути, который был активен в процессе emacs. Исправление пути (или его полное указание в команде компиляции) позволило избежать ловушки CFGERR. Подобная ошибка может возникнуть, если ваш gcc не находится на пути, который используется в emacs.
Удачи.