Duplicar posible:
g++ undefined reference to typeinfo
Undefined symbols “vtable for …” and “typeinfo for…”?referencia indefinida a `typeinfo para la clase
no puedo usar mi clase.
class Accel {
public:
virtual void initialize(void);
virtual void measure(void);
virtual void calibrate(void);
virtual const int getFlightData(byte);
};
class Accel_ad : public Accel {
public:
Accel_ad() : Accel(){}
void initialize(void) {/*code code code...*/}
void measure(void) {/*measure code*/}
const int getFlightData(byte axis){/*getting data*/}
void calibrate(void) {
int findZero[FINDZERO];
int dataAddress;
uint8_t data[2];
for (byte calAxis = XAXIS; calAxis < ZAXIS; calAxis++) {
if (calAxis == YAXIS) dataAddress = 0x32;
if (calAxis == XAXIS) dataAddress = 0x34;
if (calAxis == ZAXIS) dataAddress = 0x36;
for (byte i=0; i<FINDZERO; i++) {
readReverseWordI2C(dataAddress,data);
findZero[i] = (data[1] << 8) | (data[0]);;
Delay_ms(10);
}
accelZero[calAxis] = findMedian(findZero, FINDZERO);
}
// replace with estimated Z axis 0g value
accelZero[ZAXIS] = (accelZero[XAXIS] + accelZero[PITCH])/2;
// store accel value that represents 1g
measure();
accelOneG = -accelData[ZAXIS];
}
main.cpp
Accel_ad accel;//all ok
accel.initialize();//all ok
accel.calibrate();//ERROR: undefined reference to `typeinfo for Accel'
accel.measure();//All okey
que saben lo que está mal?
Deja la * * error exacto completa compilación. – Nawaz
[cc] .. \ obj \ main.o :(. Rodata._ZTI8Accel_ad [typeinfo for Accel_ad] + 0x8): referencia indefinida a 'typeinfo for Accel ' [cc] collect2: ld devuelto 1 estado de salida – SevenDays
@wsevendays: por favor actualice la pregunta con el mensaje de error exacto. En general, responda a las solicitudes de aclaraciones actualizando su publicación, en lugar de responder con un comentario. Por un lado, una pregunta debe ser comprensible sin leer comentarios. Por otro lado, SO es un QA & sitio, no un foro, y los comentarios no están destinados (ni son adecuados) para las discusiones. – outis