[C con Clase] Error en compilacion: Referencia a ... sin definir
Facundo Curti
facu.curti en gmail.com
Mar Mayo 20 08:29:04 CEST 2014
Hola lista. Como estan?
Les comento que estoy tratando de diseñar una libreria para calcular un
CRC32 de una cadena. Como no necesito crear objetos, defino todas las
funciones y variables como static.
Tengo 3 archivos. crc32.h, crc32.cpp y el main.cpp
Como es de esperar, el .h define la clase y declara funciones y variables.
Mientras que crc32.cpp, las define.
crc32.cpp compila sin ningun error, y me da como resultado el crc32.o. Sin
embargo, al hacer un: g++ main.c crc32.o
Me larga el siguiente error:
main.cpp: En la función ‘int main(int, char**)’:
main.cpp:16:8: aviso: variable ‘n1’ sin usar [-Wunused-variable]
crc32.o: En la función `CRC32::iniTab()':
crc32.cpp:(.text+0x47): referencia a `CRC32::flagTab' sin definir
crc32.cpp:(.text+0x55): referencia a `CRC32::poly' sin definir
crc32.cpp:(.text+0x68): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0x94): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0xa9): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0xb9): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0xc3): referencia a `CRC32::poly' sin definir
crc32.cpp:(.text+0xda): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0xf5): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0x10a): referencia a `CRC32::table' sin definir
crc32.cpp:(.text+0x126): referencia a `CRC32::flagTab' sin definir
collect2: error: ld devolvió el estado de salida 1
Les adjunto los archivos. La clase todavia no está terminada, falta la
parte mas importante. De momento solo hago un cout para comprobar que todo
funcione correctamente antes de continuar.
Me he matado tratando de pensar que puede causar este error. Puedo deducir
que es en la fase de linkeo, pero no entiendo a que viene el error, puesto
que esas variables/funciones, SI estan definidas.
Tal vez pienso que estoy usando los static de forma incorrecta. O que no
está permitido trabajar con las clases de esta forma. Pero no he
encontrado nada en google que me indique lo contrario.
Espero por favor puedan ayudarme. Gracias de antemano. Saludos! ;)
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: crc32.cpp
Type: text/x-c
Size: 1865 bytes
Desc: crc32.cpp
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140520/2dff12f9/attachment.bin>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: crc32.h
Type: text/x-c
Size: 1357 bytes
Desc: crc32.h
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140520/2dff12f9/attachment-0001.bin>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: main.cpp
Type: text/x-c
Size: 787 bytes
Desc: main.cpp
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140520/2dff12f9/attachment-0002.bin>
Más información sobre la lista de distribución Cconclase