Problema con .h y .cpp

Iniciado por avmiitxe, 21 Abril 2012, 17:46 PM

0 Miembros y 1 Visitante están viendo este tema.

avmiitxe

Hola, he visto muchos tutoriales de C++ donde hacian aplicaciones , creaban archivos .h y .cpp
En el main.cpp incluían el .h, pero el .cpp en ninguna parte y funcionaba el programa, yo lo hago igual y me da un error.
¿cómo sabe el compilador dónde está el .cpp si no lo ha incluido en ninguna parte?
Saludos

armizh

El compilador no lo sabe. Tu tienes por ejemplo los siguientes archivos:

  • Main.cpp
  • HolaMundo.cpp
  • HolaMundo.h
Tu Main.cpp incluye a HolaMundo.h y llama al constructor. En HolaMundo.h solo esta el prototipo. Al compilar, por ejemplo con gcc, compilas Main.cpp con la opcion -c que lo que hace es simplemente no enlazar. Luego compilas HolaMundo.cpp con la misma opcion. Finalmente enlazas los archivos objeto resultantes en la compilacion con el comando ld y (probablemente) la opcion -zmuldefs.
Entonces lo que haces es esto (en la consola):
g++ -c Main.cpp -o Main.o
g++ -c HolaMundo.cpp -o HolaMundo.o
ld -zmuldefs -o HolaMundo Main.o HolaMundo.o

Y luego ejecutas tu programa HolaMundo.
Como te habras dado cuenta, tu le dices explicitamente al compilador y enlazador que es lo que debe hacer.
Lo que produce confusion, es que los IDEs hacen todo esto por si solos y uno ni se entera! Por eso prefiero usar automake creando  yo mismo los makefiles o pedirle a alguien que construya las ordenes con SCons. Espero se haya entendido.

Saludos.
Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Hamster

avmiitxe

Esque tengo un problema, me he descargado un juego en C++ que contiene varias archivos .h y .cpp,  en el código veo que en los .cpp se incluyen los .h, pero en ningún lado se incluyen los .cpp.
Entonces qué hago, porque el compilador me da error por eso

Eternal Idol

Busca el proyecto o makefile, lee la documentacion PRIMERO.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón