2009-09-06 21 views
11

Kiedy próbuje uruchomić Mx Flymake-Mode w Emacs uzyskać:błąd konfiguracji Flymake podczas programowania w C

Flymake: Configuration error has occured while running (make -s -C ./CHK_SOURCES=helloworld_flymake.c SYNTAX_CHECK_MODE=1 check-syntax). Flymake will be switched OFF 

jestem z tego polecenia w buforze o nazwie helloworld.c:

#include <stdio.h> 

int main(void) { 
    printf("Hello World"); 
    return 0; 
} 

i mieć plik o nazwie Makefile w tym samym katalogu:

helloworld: helloworld.c 
gcc helloworld.c -o helloworld 

biegnę GNU Emacs 23.0.91.1 pod Ubuntu 9.04.

Z góry dziękuję!

Odpowiedz

1

Czy to jest właściwa treść pliku makefile? Wygląda na to, że przed drugą linią jest spacja. To ma być zakładka:

helloworld: helloworld.c 
gcc helloworld.c -o helloworld 

więcej tak:

helloworld: helloworld.c 
    gcc helloworld.c -o helloworld 

pamiętając, że redaktor SO wydaje się być konwertowane moje zakładki znak spacji, więc nie rób tego .

helloworld: helloworld.c 
<press tab here>gcc helloworld.c -o helloworld 
+0

Tak, używam karty, a nie spacji. Kompiluje się dobrze, gdy wpisuję "make" w powłoce. –

19

Makefile' must contain the zameldowania składnia”target. Dopisz to do Makefile:

check-syntax: 
    gcc -o nul -S ${CHK_SOURCES} 

Upewnij użyć TAB, aby uruchomić drugą linię. Istnieje również błąd związany z flymake, który sprawia, że ​​musisz nazywać Makefile dużym M. To nie zadziała, jeśli na przykład nazwiesz go "makefile". Uważaj na to!

+0

Problem z tą metodą polega na tym, że gcc nie zezwoli na działanie, jeśli ma więcej niż jeden plik. W każdym razie, aby ominąć to? gcc: błąd krytyczny: nie można podać opcji -o z opcją -c, -S lub -E z wieloma plikami zakończoną kompilacją . – Silverdev

+0

Jedna linia: 'check-składnia :; g ++ -o nul -S $ {CHK_SOURCES} --std = C++ 14; rm nul' – pank

Powiązane problemy