[C con Clase] al separar una clase en .h y .cpp: error undefined reference to

Miguel Olave molavec en gmail.com
Jue Jun 10 18:47:32 CEST 2010


Hola:

Lo que intentó es separar una clase en un archivo .h y otro .cpp, el 
problema es que cuando lo hago me aparece el siguiente error:

g++ main.o -o main
main.o: In function `main':
main.cpp:(.text+0xb1): undefined reference to 
`DSP_Register::showRegOptions(char*, unsigned int)'
collect2: ld returned 1 exit status
make: *** [main] Error 1


Este es mi make file:

main: main.o
    g++ main.o -o main

main.o: main.cpp DSP_Register.o
    g++ -c -I ./reg_management main.cpp -o main.o

DSP_Register.o: ./reg_management/DSP_Register.cpp \
    ./reg_management/DSP_Register.h \
    ./reg_management/TXCON.h
    g++ -c -I ./reg_management ./reg_management/DSP_Register.cpp -o 
DSP_Register.o


y los archivos están en este orden:
./main.cpp
./reg_management/DSP_Register.h
./reg_management/DSP_Register.cpp
./reg_management/TXCON.h

Googleando en algunos foros decían que era porque hay que linkear o algo 
así, pero estoy un poco perdido.

Cuando dejo la definición y la implementación de los objetos de la clase 
(DSP_Register) están en el mismo archivo .h me complila sin problema, el 
drama es que la implementación de los objetos es inmensamente grande 
como para dejarlos todos en el DSP_Register.h y quiero dejarlos aparte 
en un .cpp.

Estoy usando Ubuntu y gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)


Cualquier
ayuda es bienvenida.




Más información sobre la lista de distribución Cconclase