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

Manuel L. notret en gmx.es
Jue Jun 10 21:14:46 CEST 2010


El pasado 2010-06-10 16:47:27, Miguel Olave escribió:
 
MO> Hola:
MO> Lo que intentó es separar una clase en un archivo .h y otro .cpp, el 
MO> problema es que cuando lo hago me aparece el siguiente error:
MO> g++ main.o -o main
MO> main.o: In function `main':
MO> main.cpp:(.text+0xb1): undefined reference to 
MO> `DSP_Register::showRegOptions(char*, unsigned int)'
MO> collect2: ld returned 1 exit status
MO> make: *** [main] Error 1
MO> Este es mi make file:
MO> main: main.o
MO>     g++ main.o -o main
MO> main.o: main.cpp DSP_Register.o
MO>     g++ -c -I ./reg_management main.cpp -o main.o
MO> DSP_Register.o: ./reg_management/DSP_Register.cpp \
MO>     ./reg_management/DSP_Register.h \
MO>     ./reg_management/TXCON.h
MO>     g++ -c -I ./reg_management ./reg_management/DSP_Register.cpp -o 
MO> DSP_Register.o
MO> y los archivos están en este orden:
MO> ./main.cpp
MO> ./reg_management/DSP_Register.h
MO> ./reg_management/DSP_Register.cpp
MO> ./reg_management/TXCON.h


Hola, Miguel Olave: el problema está en que cuando gcc realiza el enlazado (invocación g++ main.o -o main) sólo le pasa una parte del código, main.o; y no todo. Debe pasarle a mayores el archivo DSP_Register.o, que contiene el código restante. Simplemente es llamar a g++ main.o DSP_Register.o -o main.

Saludos,

                                                                           Fefu.


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