2009-09-06 7 views
11

Al intentar ejecutar Mx Flymake-Mode en Emacs me sale:error de configuración Flymake durante la programación en 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 

estoy invocando el comando en un buffer llamado helloworld.c:

#include <stdio.h> 

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

y tienen un archivo llamado Makefile en el mismo directorio:

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

estoy corriendo GNU Emacs 23.0.91.1 bajo Ubuntu 9.04.

¡Gracias de antemano!

Respuesta

1

¿Es este el contenido real de su archivo MAKE? Parece que hay un espacio '' antes de la segunda línea. Esto se supone que es una ficha:

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

Más como éste:

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

Teniendo en cuenta, que el editor de SO parece haber convertido mi carácter de tabulación en espacios, por lo que no hacen eso .

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

Sí, estoy usando una pestaña, no un espacio. Se compila bien cuando escribo "make" en el shell. –

19

Makefile' must contain the check-syntax 'target. Adjunte esto al Makefile:

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

Asegúrese de utilizar una TAB para iniciar la segunda línea. También hay un error con flymake que hace que tenga que nombrar el archivo Makefile con una M. mayúscula. No funcionará si, por ejemplo, lo llama "archivo MAKE". ¡Cuidado con eso!

+0

El problema con este método es que gcc no permitirá que funcione si tiene más de un archivo. De todos modos para evitar esto? gcc: error fatal: no se puede especificar -o con -c, -S o -E con múltiples archivos finalizada la compilación. – Silverdev

+0

Una línea: 'check-sintaxis :; g ++ -o nul -S $ {CHK_SOURCES} --std = C++ 14; rm nul' – pank

Cuestiones relacionadas