2010-10-18 37 views
19

Obtengo estos errores después de emitir un comando g ++ en un archivo .cpp: error: 'exit' no fue declarado en este ámbito error: 'printf' no se declaró en este ámbitoC++ en Linux no reconoce comandos como exit() y printf()

El problema es que cuando compilé este programa en otra máquina Linux, todo fue bien. Intenté buscar, pero todo lo que encontré fue que necesito incluir archivos como 'stdlib.h'.

¿Podría ser que me falta algo de biblioteca en mi sistema operativo? Si es así, ¿qué podría ser?

+4

Publique el código, es probable que faltan los encabezados. – birryree

+0

O usando una declaración. –

Respuesta

27

Las versiones recientes de GCC se han vuelto más estrictas en cuanto a las responsabilidades que el programador debe cumplir. Incluya el encabezado cstdlib, cstdio, etc. y acceda a estas funciones desde el espacio de nombres std.

+0

#include #include using namespace std; Este es el encabezado actual. De alguna manera funciona con solo esto en otro sistema operativo Linux, y necesito descubrir cómo hacerlo. Agregar encabezados adicionales a esto no es una opción en este momento. – Max

+2

Luego compilarlo en versiones recientes de GCC es * tampoco * una opción en este momento. Tu llamada. –

+1

Hmm, está bien. ¿Hay alguna forma de eludir esto? Tal vez instalar algo en alguna parte o cambiar algunos parámetros? ¿Tienes alguna idea entre qué versiones de gcc se produjo este cambio? – Max

2

Si usted está en necesidad de un rápido (y sucio) fijar tratar:

using namespace std; 

También asegúrese de que está incluyendo las cabeceras io apropiadas.

3

En el terminal: - cuando se escribe la salida hombre: - se mostrará

exit - cause normal process termination 

SINOPSIS #include stdlib.h

void exit(int status); 

por lo que requiere para definir cabecera #include stdlib. h

9

Específicamente para ‘exit’ was not declared in this scope todo lo que necesita es:

#include <stdlib.h>