[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