2012-10-11 33 views
5

Estoy intentando ejecutar un programa Hola Mundo, pero estoy consiguiendo el errorPrincipiante: error de sintaxis antes int main()

./ex1.c: line 3: syntax error near unexpected token `(` 
./ex1.c: line 3: `int main (int argc, char *argv[])' 

o

./ex1.c: 3: ./ex1.c: Syntax error: "(" unexpected 

o

./ex1.c:3: unknown file attribute: i 
./ex1.c:4: parse error near `}' 

Lo extraño es que he ejecutado este mismo programa antes y no tuve problemas.

No estoy seguro si estos problemas están relacionados pero el problema ocurrió después de que instalé Valgrind para ejecutar el ejercicio 4 en Learn C The Hard Way. Recibí un error que decía permiso denegado, que arreglé usando chmod +x. Entonces todos mis archivos .c necesitaban permiso que no tenían antes. Luego hice chmod -R 0777 para el directorio con todos mis archivos de práctica .c. Entonces, el problema de permiso se soluciona, pero luego se inicia el error anterior. Pueden completarse sin relación, pero desea incluirlos por si acaso.

+7

Si tiene problemas con * code *, publíquelo. De lo contrario, ¿cómo esperas que te ayudemos? Todo lo que puedo decirte de esto es que tienes un 'inesperado' ('en la línea 3. –

+0

Pero de esto puedo decir que está ejecutando el archivo' .c', y que el shell se queja de la sintaxis C ... – nneonneo

+1

* No * quiere que sus archivos '* .c' tengan permisos de ejecución, y rara vez quiere * todo * tener 777 permisos (que dan permiso de lectura-escritura-ejecutar a todos en el sistema). –

Respuesta

7

No se puede ejecutar un archivo .c solo usando ./ex1.c; tiene que compilar primero en un programa ejecutable.

Suponiendo que tiene una máquina Linux/OS X, use gcc -Wall ex1.c -o ex1 para compilarla (o, más simplemente, make ex1). Entonces puede ./ex1 ejecutar el programa.

+2

Me di cuenta de lo que estaba haciendo mal. Había usado make pero todavía me estaba yendo. c después de ./ex1. ¡Gracias! – MParker

+1

'gcc -Wall ...' - siempre - gracias –

+0

@PaulR: sí, buena llamada. – nneonneo

-4

Después de compilar el programa utilizando make "your program name" (como make mario en este caso), simplemente use ./"su nombre de programa "(este caso ./mario). NO agregue .c cuando ejecuta el programa.

+0

Estas son instrucciones para usar Makefiles, que probablemente no esté relacionado con el error de sintaxis @MParker tiene. – Jonatan

+2

Se dio una respuesta similar hace 3 años. –

Cuestiones relacionadas