Tôi nhận được lỗi trình liên kết sau khi tôi tạo ứng dụng của mình.Lỗi liên kết Q_OBJECT!
HIMyClass.obj:: error: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CHIMyClass::metaObject(void)const " ([email protected]@@[email protected]@XZ) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual void * __thiscall CHIMyClass::qt_metacast(char const *)" ([email protected]@@[email protected]) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual int __thiscall CHIMyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected]) File not found : HIMyClass.obj
khai báo lớp của tôi là như
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
Khi tôi nhận xét Q_OBJECT lỗi mối liên kết đi tắt (và rõ ràng tôi không thể sử dụng tín hiệu và khe cắm). Tôi đang sử dụng Qt Creator như IDE và Qt 4.5.3. Khi tôi cung cấp cho Xây dựng lại tất cả, chắc chắn rằng QMake sẽ được gọi. Tôi đoán rằng, thế hệ của các tập tin moc_ * là nơi mà vấn đề nằm. Tôi đang sử dụng Windows XP và cl như trình biên dịch.
Lý do đằng sau lỗi liên kết này là gì?
Có thể 'Không tìm thấy tệp: HIMyClass.obj' cho chúng tôi biết rằng Trình tạo Qt không thấy tệp moc/obj/temp? – mosg
Thực sự, chạy lại qmake. Ngoài ra, hãy kiểm tra các ký tự "\" bị thiếu hoặc thừa trong tệp .pro của bạn. – andref