La compilation d'un simple Qt “Hello World!” application dans Visual Studio 2010 Express?
Je suis en train de construire une base de Qt "Hello, world!" demande à l'intérieur de Visual Studio.
J'ai eu le moc
étape de travail (je pense), mais maintenant je suis à une perte quant à la façon de résoudre cette erreur liens:
1>moc_mainwindow.obj : error LNK2001: unresolved external symbol "public:
static struct QMetaObject const QMainWindow::staticMetaObject"
(?staticMetaObject@QMainWindow@@2UQMetaObject@@B)
J'ai fait beaucoup de recherche mais je suis à une perte.
Voici mes répertoires include:
i:\Qt\4.6.3\include\QtCore;
i:\Qt\4.6.3\include\QtGui;
i:\Qt\4.6.3\include;
i:\Qt\4.6.3\include\ActiveQt;
reease;
.;
i:\Qt\4.6.3\mkspecs\win32-msvc2008
Voici les bibliothèques, je suis un lien contre:
i:\Qt\4.6.3\lib\QtGui4.lib;
i:\Qt\4.6.3\lib\QtCore4.lib;
gdi32.lib;
comdlg32.lib;
oleaut32.lib;
imm32.lib;
winmm.lib;
winspool.lib;
ws2_32.lib;
ole32.lib;
user32.lib;
advapi32.lib;
libpng.lib;
msimg32.lib;
shell32.lib;
kernel32.lib;
uuid.lib;
Quelqu'un a une idée?
essayez les étapes ici: stackoverflow.com/questions/5601950/... pour moi, il a travaillé comme un charme.
OriginalL'auteur Evil Spork | 2010-06-13
Vous devez vous connecter pour publier un commentaire.
qmake va générer le moc vaudou à partir du fichier d'en-tête .fichier pro. Comme vous ne l'utilisez pas qmake, par le son de celui-ci, mais un natif de projet visual studio, c'est probablement la cause du problème.
Si vous utiliser qmake pour générer votre projet visual studio tous vos problèmes vont s'en aller et la vie sera douce. Sans doute!
Je suis à l'aide de l'ouvrir 2010.05; évidemment, vous voulez remplacer le chemin d'accès correct pour votre version.
configurer l'environnement de
début 2010 l'environnement de commandes à partir du menu démarrer
-ensemble incluent=%%; C:\Qt\2010.05\qt\include
-définir lib=%lib%;C:\Qt\2010.05\qt\lib
-set path=%path%;C:\Qt\2010.05\qt\bin
-définir QMAKESPEC=win32-msvc2010
écrire du code, de créer des fichiers etc
produire la première pro et makefile et le feu jusqu'à VS
-qmake -tp vc
-qmake
vous devriez maintenant avoir un fichier makefile - vérifier qu'il fonctionne en exécutant:
-nmake
maintenant, lancez visual studio
-VCExpress.exe /useenv
-XXX.vcxproj peuvent maintenant être ouverts
Si cela ne fonctionne pas, vous aurez besoin de construire l'intervalle qt à l'encontre de visual studio. C'est très simple - allez dans le répertoire de qt (à partir de visual studio express fenêtre de commande) et le type:
un an et demi plus tard... j'ai enfin se déplacer à la programmation avec Qt de nouveau, et oui, cela a fonctionné. Peut-être un peu maladroit et encombrant.. et je suppose que je dois refaire un pas de temps en temps pour mettre à jour le moc fichiers?
OriginalL'auteur jolyon
Vous ne pouvez pas installer Qt VS plugin sur l'édition Express de VC++. En supposant que vous avez obtenu le moc pour compiler, vous devez également vous assurer que vous êtes, y compris les bibliothèques nécessaires (*.fichiers lib) au moment de la liaison. Cela va en vertu des propriétés de Projet > Linker > Input > d'autres Dépendances.
Vous aurez besoin qtcore4.lib au minimum.
Assurez-vous également de la bibliothèque Qt chemin est dans votre chemin de recherche des bibliothèques. Sur mon ordinateur, il est c:\qt\4.6.2\lib.
OriginalL'auteur Ben H
J'ai été en mesure d'obtenir QT pour travailler avec Visual C++ Express 2010 à l'aide de http://rajorshi.net/blog/2009/01/using-qt-with-msvc-express-2008/ et http://portfolio.delinkx.com/files/Qt.pdf comme guides. Juste au cas où quelqu'un est toujours à avoir des problèmes.
OriginalL'auteur Maurycy
Avez-vous créer le projet visual studio à l'aide de qmake en premier? Le problème semble être le moc compilation. Avez-vous des qt plug-in installé et l'intervalle qt chemin, dans le respect de variables? Pouvez-vous ajouter vous hello world code pour que je puisse avoir un coup d'oeil?
Si vous ne pouvez pas installer le plugin dans la version express edition, je ne suis pas sûr que je peux aider. Vous devez être en mesure de créer de la moc des fichiers, je suis sûr que vous pouvez le faire manuellement à partir de la ligne de commande et essayez ensuite de modifier le visual studio paramètres à faire la compilation. Cependant je doute que le débogueur est d'aller travailler très bien, dans ce cas, car il va probablement essayer de déboguer le code de moc avec les signaux et les autres Qt macros dans le plus pur du code C++. Pourquoi n'essayez-vous pas QtCreator ou Eclipse? Avez-vous besoin de visual studio fonctionnalité?
il compile bien dans QtCreator, ce n'est pas la question. la question est, j' /besoin d ' / utilisation de visual studio 2008 ou 2010.. et je n'ai que express.
Que faire des choses très complexes. Je n'ai aucune idée si c'est possible de compiler dans visual studio, sans le pug-in et même si vous le pouvez, comme je l'ai dit avant, probablement, le débogueur va être très difficile à utiliser. Je sais, c'est une douleur dans le cul, mais je suis de l'édition standard, si c'est vraiment obligatoire pour vous d'utiliser visual studio. Je suis désolé de ne pas pouvoir vous aider davantage.
ok, j'ai la version standard.. pénible d'avoir à débourser pour cela.. mais encore plus douloureux que je reçois le même message d'erreur. alors, comment puis-je résoudre maintenant?
OriginalL'auteur cnebrera
Vous avez besoin d'ajouter des commandes pour générer QT metaclasses, puis également inclure les fichiers générés dans votre projet de code c++.
Générer de l'intervalle QT metaclasses:
Tout d'abord, ajoutez votre QT bin chemin d'accès dans le Répertoire de l'Exécutable. (C'est dans les Propriétés de Configuration > Répertoires de VC++)
Ajouter votre en-Tête des fichiers qui contiennent des macros macro q_object au projet.
Multi-sélectionnez vos fichiers d'en-tête, puis cliquez droit sur un en-tête de fichier, cliquez sur Propriétés.
moc.exe "%(FullPath)" > "$(ProjectDir)MetaObjects\moc_%(Filename).cpp"
QT: Generate $(ProjectDir)MetaObjects\moc_%(Filename).cpp
(facultatif)$(ProjectDir)MetaObjects\moc_%(Filename).cpp
OriginalL'auteur Dwedit