d'info sys: win xp SP3, Microsoft Visual Studio 2008 Version 9.0.21022.8 RTMProblèmes avec Qt 4.6 VS 2008
Microsoft .NET Framework version 3.5 SP1
Qt Add-in 1.1.5
J'ai installé Qt 4.6.3 à partir du site http://qt.nokia.com/downloads/windows-cpp-vs2008. Puis j'ai ajouté le Add-in Qt 1.1.5 et j'ai configuré la variable PATH.
Lorsque j'ouvre un nouveau projet QT, l'exemple par défaut fonctionne très bien.
Sur le site Nokia (qt), j'ai trouvé quelques exemples mais il semble que les choses ne fonctionnent pas correctement.
Voici un des nombreux exemples qui ne fonctionnent pas:
#include <QtGui>
#include <QWidget>
class QLabel;
class QLineEdit;
class QTextEdit;
class AddressBook : public QWidget
{
Q_OBJECT
public:
AddressBook(QWidget *parent = 0);
private:
QLineEdit *nameLine;
QTextEdit *addressText;
};
AddressBook::AddressBook(QWidget *parent)
: QWidget(parent)
{
QLabel *nameLabel = new QLabel(tr("Name:"));
nameLine = new QLineEdit;
QLabel *addressLabel = new QLabel(tr("Address:"));
addressText = new QTextEdit;
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(nameLabel, 0, 0);
mainLayout->addWidget(nameLine, 0, 1);
mainLayout->addWidget(addressLabel, 1, 0, Qt::AlignTop);
mainLayout->addWidget(addressText, 1, 1);
setLayout(mainLayout);
setWindowTitle(tr("Simple Address Book"));
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
AddressBook addressBook;
addressBook.show();
return app.exec();
}
compilateur dit ce ::
fenêtre de sortie
Liaison ...
main.obj: erreur LNK2001: symbole externe non résolu "public: struct virtuel QMetaObject const * __thiscall AddressBook :: metaObject (void) const" (? MetaObject @ AddressBook @@ UBEPBUQMetaObject @@ XZ)
main.obj: erreur LNK2001: symbole externe non résolu "public: virtual void * __thiscall AddressBook :: qt_metacast (char const *)" (qt_metacast @ AddressBook @@ UAEPAXPBD @ Z?)
main.obj: erreur LNK2001: symbole externe non résolu "public: int __thiscall AddressBook virtuel :: qt_metacall (ENUM QMetaObject :: Appel, int, void * *)" (qt_metacall @ AddressBook @@ UAEHW4Call @ QMetaObject @@ HPAPAX @ Z?)
main.obj: erreur LNK2001: symbole externe non résolu "public: structure statique QMetaObject const AddressBook :: staticMetaObject" (? staticMetaObject @ AddressBook @@ 2UQMetaObject @@ B)
C: \ Documents and Settings \ nik \ Mes documents \ Visual Studio 2008 \ Projects \ vs_03 \ Debug \ vs_03.exe: erreur fatale LNK1120: 4 unresolved externals
Résultats
Construire journal a été enregistré à " file: // c: \ Documents and Settings \ nik \ Mes documents \ Visual studio 2008 \ Projects \ vs_03 \ vs_03 \ Debug \ BuildLog.htm » vs_03 - 5 erreur (s), 0 avertissement (s)
Il me semble que la chose a à voir avec l'utilisation de la macro Q_OBJECT mais je ne sais pas quoi faire cette chose commence à fonctionner correctement.
l'installation peut-être mal ou ... aucune idée
Toute aide est appréciée.
Semble être lié au MOC. Assurez-vous que le MOC génère un fichier moc _ *. Cpp correspondant à cet exemple. Si c'est le cas, assurez-vous que le fichier moc _ *. Cpp est ajouté au projet. – stinky472
Avez-vous l'expérience avec VS2008-Qt? Avez-vous une explication en quelques étapes? –
Excuses, malheureusement pas. Je fais la plupart de ces choses à partir de la ligne de commande, donc ma suggestion serait analogue à celle de Timo. – stinky472