Eventuali duplicati:
g++ undefined reference to typeinfo
Undefined symbols “vtable for …” and “typeinfo for…”?undefined reference to `typeinfo per la classe
non posso usare la mia classe.
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
che sanno cosa c'è che non va?
Messaggio del * esattamente * errore di compilazione completa. – Nawaz
[cc] .. \ obj \ main.o :(. Rodata._ZTI8Accel_ad [tipoinfo per Accel_ad] + 0x8): riferimento non definito a 'typeinfo per Accel ' [cc] collect2: ld restituito 1 stato di uscita – SevenDays
@wsevendays: si prega di aggiornare la domanda con il messaggio di errore esatto. In generale, rispondi alle richieste di chiarimenti aggiornando il tuo post, piuttosto che rispondere con un commento. Per prima cosa, una domanda dovrebbe essere comprensibile senza leggere i commenti. Per un altro, SO è un QA e un sito, non un forum, e i commenti non sono destinati (né sono adatti) per le discussioni. – outis