Qt "unresolved external symbol"

0

Witam

Mam problem z poprawnym działaniem biblioteki Qt. Przy prostym przykładzie wyskakują mi błędy 'unresolved external symbol' .

W tym przypadku błędy pojawiają się kiedy tworzę obiekt klasy MyTimer..
Owy przykład to:

#include <QApplication> 
#include <QWidget> 
#include <QObject> 
#include <QtDebug> 
#include <QtCore> 
#include <QTimer> 

class MyTimer : public QObject{ 
        Q_OBJECT 

public: 
        
        MyTimer(){ 
                        
                timer = new QTimer(); 
                timer->start(1000); 
                connect( timer, SIGNAL(timeout()), this, SLOT( MySlot() )); 
        } 
        QTimer * timer ; 
public slots: 
        void MySlot(){ 
                qDebug() << "Timer executed" ; 
        } 
        
}; 

//=========================================================== 

int main(int argv, char **args) 
{ 
        QApplication app(argv, args); 

        MyTimer timer ; 

        return app.exec(); 
}

Używam Visual Studio 2010. Pierwszy raz się spotkałem z czymś takim, że w "Solution Explorer" pliki w folderach Debug i Release mają czerwone otrzeżenia przy swoich ikonach. Screen w załączniku.

Proszę o jakąś pomoc, bo męczę się już z tym ponad tydzień..

0

No dobra, ale gdy pojawia się 'unresolved external symbol' to wypisuje też o jaki 'symbol' mu chodzi. Błędy masz w plikach kuteka czyli pewnie czegoś nie doinlkudowałeś lub nie dolinkowałeś. Poza tym w wersji 4.6, którą znam to dla qDebug trzeba zainkludować QDebug a nie QtDebug.

0
Error	6	error LNK1120: 3 unresolved externals	C:\Users\MOnte\documents\visual studio 2010\Projects\Qt_App1\Win32\Debug\\Qt_App1.exe	1
Error	5	error LNK2001: unresolved external symbol "public: virtual int __thiscall MyTimer::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyTimer@@UAEHW4Call@QMetaObject@@HPAPAX@Z)	C:\Users\MOnte\documents\visual studio 2010\Projects\Qt_App1\Qt_App1\main.obj
Error	3	error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MyTimer::metaObject(void)const " (?metaObject@MyTimer@@UBEPBUQMetaObject@@XZ)	C:\Users\MOnte\documents\visual studio 2010\Projects\Qt_App1\Qt_App1\main.obj
Error	4	error LNK2001: unresolved external symbol "public: virtual void * __thiscall MyTimer::qt_metacast(char const *)" (?qt_metacast@MyTimer@@UAEPAXPBD@Z)	C:\Users\MOnte\documents\visual studio 2010\Projects\Qt_App1\Qt_App1\main.obj
 

Takie są błędy.. A gdzie mogę sprawdzić, co potrzeba jeszcze zainkludować?

1

Zainkludować już nic, sprawdziłem że QtDebug i QDebug są dodawane razem z QtCore. Masz błędy linkera czyli źle masz bibliotekę podpiętą. Masz jakiś inny program Qt, który Ci się kompiluje? Jeśli tak to porównaj ustawienia linkera. Zobacz też ustawienia add-in'a dla Qt w visual'u. Jeśli nic nie znajdziesz to może będziesz miał szczęście i temat znajdzie taki inny forumowicz, który ma doświadczenie z Qt spod visuala, ja wolę QtCreator ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1