thể trùng lặp:
g++ undefined reference to typeinfo
Undefined symbols “vtable for …” and “typeinfo for…”?tài liệu tham khảo không xác định cho `typeinfo cho lớp
tôi không thể sử dụng lớp học của tôi.
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
Ai biết chuyện gì vậy?
Post * chính xác * lỗi đầy đủ biên dịch. – Nawaz
[cc] .. \ obj \ main.o: (. Rodata._ZTI8Accel_ad [typeinfo for Accel_ad] + 0x8): undefined tham chiếu đến 'typeinfo for Accel ' [cc] collect2: ld trả về 1 trạng thái thoát – SevenDays
@wsevendays: vui lòng cập nhật câu hỏi với thông báo lỗi chính xác. Nói chung, hãy trả lời các yêu cầu làm rõ bằng cách cập nhật bài đăng của bạn, thay vì trả lời bằng nhận xét. Đối với một điều, một câu hỏi phải dễ hiểu mà không đọc nhận xét. Đối với người khác, SO là một QA & trang web, không phải là một diễn đàn, và các ý kiến không được dự định (cũng không phải là họ rất thích hợp) cho các cuộc thảo luận. – outis