Foros del Web » Programación para mayores de 30 ;) » C/C++ »

undefined reference to `main' C++

Estas en el tema de undefined reference to `main' C++ en el foro de C/C++ en Foros del Web. Buenas, estoy programando en c++ y quiero hacerlo de forma modular, para ello uso ficheros de cabecera .h y de implementación .cpp además del main. ...
  #1 (permalink)  
Antiguo 06/11/2011, 15:11
 
Fecha de Ingreso: noviembre-2011
Ubicación: Murcia
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
undefined reference to `main' C++

Buenas, estoy programando en c++ y quiero hacerlo de forma modular, para ello uso ficheros de cabecera .h y de implementación .cpp además del main. Estos son los tres archivos que estoy probando:

-----------------------------------------------------------------------------------
main.cpp:

#include <stdio.h>
#include "hola.h"

int main()
{

escribeHola();

return 0;
}

-----------------------------------------------------------------------------------
hola.h:

#ifndef hola_H
#define hola_H

void escribeHola();

#endif

-----------------------------------------------------------------------------------
hola.cpp:

#include "hola.h"

void escribeHola()
{

cout << "Hola\n";
}

-----------------------------------------------------------------------------------

compilo primero hola.h sin problemas. Cuando compilo hola.cpp me salta este error:

/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

Y cuando compilo main.cpp este:

/tmp/ccFMfxVT.o: In function `main':
main.cpp:(.text+0x7): undefined reference to `escribeHola()'
collect2: ld returned 1 exit status


¿Cómo lo soluciono?
Gracias!!
  #2 (permalink)  
Antiguo 06/11/2011, 15:36
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: undefined reference to `main' C++

Suponiendo que compilas asi:

g++ archivo1.cpp
y
g++ archivo2.cpp

hazlo asi:

g++ archivo1.cpp archivo2.cpp -o nombre_ejecutable
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 06/11/2011, 15:45
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: undefined reference to `main' C++

Otra opcion es crear el codigo objeto de cada archivo cpp

g++ -c archivo1.cpp
g++ -c archivo2.cpp

Luego procesas todos los ".o":

g++ archivo1.o archivo2.o

De esta forma solo tienes que recompilar el archivo que modificaste y no todo el programa. Esto es util cuando el software empieza a ser grande o añades una libreria bastante pesado.

Saludos
  #4 (permalink)  
Antiguo 06/11/2011, 16:01
 
Fecha de Ingreso: noviembre-2011
Ubicación: Murcia
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: undefined reference to `main' C++

Funciona!! Muchas Gracias :D

Etiquetas: main, programa, reference, undefined
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:59.