2009-09-06 2 views
11

Beim Versuch Mx Flymake-Modus in Emacs zu laufen bekomme ich:Flymake Konfigurationsfehler bei der Programmierung in 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 

ich den Befehl in einem Puffer genannt HelloWorld.c Aufruf:

#include <stdio.h> 

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

und haben Sie eine Datei Makefile im gleichen Verzeichnis mit dem Namen:

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

ich bin mit GNU Emacs 23.0.91.1 unter Ubuntu 9.04.

Vielen Dank im Voraus!

Antwort

1

Ist dies der eigentliche Inhalt Ihres Makefiles? Es sieht so aus, als wäre ein Leerzeichen vor der zweiten Zeile. Dies soll ein Register sein:

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

Mehr wie folgt aus:

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

Unter Berücksichtigung der Tatsache, dass der SO-Editor scheint mein Tabulatorzeichen in Leerzeichen umgewandelt zu haben, so tun das nicht .

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

Ja, ich verwende eine Registerkarte, kein Leerzeichen. Es kompiliert gut, wenn ich "make" in der Shell eintippe. –

19

Makefile' must contain the check-syntax 'Ziel. Hängen Sie diese an das Makefile an:

Stellen Sie sicher, dass Sie ein TAB verwenden, um die zweite Zeile zu starten. Außerdem gibt es einen Bug mit flymake, der dazu führt, dass man das Makefile mit einem Großbuchstaben M benennen muss. Es funktioniert nicht, wenn man es beispielsweise "makefile" nennt. Pass auf das auf!

+0

Das Problem mit dieser Methode ist gcc wird es nicht erlauben zu arbeiten, wenn mehr als eine Datei hat. Wie auch immer, um das zu umgehen? gcc: Schwerwiegender Fehler: kann nicht -o mit -c, -S oder -E mit mehreren Dateien angeben Kompilierung beendet. – Silverdev

+0

Eine Zeile: 'check-syntax :; g ++ -o Null -S $ {CHK_SOURCES} --std = C++ 14; rm nul' – pank