Qt moc.exe ne générant pas d' *.moc fichier
Je suis en train de construire la qtestlib/tutorial1 exemple, mais le testqstring.moc fichier n'est pas généré quand je lance nmake
(je suis en cours d'exécution Qt 4.5.2 sur Windows XP SP3).
J'ai copié testqstring.cpp à partir du répertoire du didacticiel à mon répertoire de construction (C:\sandboxes\testqstring) et de l'intervalle Qt command prompt a couru vsvars32.fichier bat de mon MS Visual Studio 8 installation pour ajouter le VS variables d'environnement.
Selon le tutoriel, je devrais courir:
> qmake -project "CONFIG += qtestlib"
> qmake
> nmake
Quand je le fais, la sortie de nmake
est:
C:/Apps/Qt/2009.03/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -je"....\Apps\Qt\2009.03\qt\include\QtCore" -I"....\Apps\Qt\2009.03\qt\include\QtGui" -I"....\Apps\Qt\2009.03\qt\include\QtTest" -I"....\Apps\Qt\2009.03\qt\include" -I"." -Je"....\Apps\Qt\2009.03\qt\include\ActiveQt" -I"debug" -I"....\Apps\Qt\2009.03\qt\mkspecs\win32-g++" -D__GNUC__ -DWIN32 testqstring.cpp -o debug\testqstring.moc
g++ -c -g -frtti -fexceptions -mthreads -Mur -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -je"....\Apps\Qt\2009.03\qt\include\QtCore" -I"....\Apps\Qt\2009.03\qt\include\QtGui" -I"....\Apps\Qt\2009.03\qt\include\QtTest" -I"....\Apps\Qt\2009.03\qt\include" -I"." -Je"....\Apps\Qt\2009.03\qt\include\ActiveQt" -I"debug" -I"....\Apps\Qt\2009.03\qt\mkspecs\win32-g++" -o debug\testqstring.o testqstring.cpp
testqstring.rpc:63:27: testqstring.moc: Aucun fichier ou répertoire
NMAKE : erreur fatale U1077: "C:\Apps\Qt\2009.03\mingw\bin\g++.EXE' : code de retour "0x1'
Stop.
NMAKE : erreur fatale U1077: "C:\PROGRA~1\MICROS~3\VC\BIN\nmake.exe' : code de retour "0 x 2'
Stop.
Donc, je peux voir que moc.exe est appelée à générer debug/testqstring.moc, mais ce fichier n'est jamais généré.
Merci pour tout et tous les conseils que vous pouvez fournir.
J'ai eu le même problème. Mais je l'ai résolu en supprimant le fichier qt.conf <qtpath> répertoire/bin.
OriginalL'auteur Doug Cuthbertson | 2009-08-29
Vous devez vous connecter pour publier un commentaire.
Il semble que vous essayez d'utiliser
nmake
de faire un build avec MinGW.nmake
est un MSVC outil.Si vous voulez faire un build avec MinGW vous devez utiliser
mingw32-make
. Si vous voulez faire un build avec MSVC vous devez utiliser un Qt construit avec MSVC (ce qui signifie que vous devez construire vous-même ou avoir une licence commerciale).OriginalL'auteur rohanpm
J'ai eu le problème que la moc.exe ne génèrent pas de toutes les mau-fichiers avec nmake. La raison en était un mauvais moc.exe chemin d'accès à l'intérieur du Makefile.Debug.
Quelque chose comme:
C:/Qt/2009.03/qt/bin\moc.exe
Je l'ai changer pour:
C:\Qt\2009.03\qt\bin\moc.exe
et maintenant ça fonctionne. 😉
Unfortunally qmake va générer des makefiles chaque fois que vous exécutez à partir du menu ou de la reconstruction d'/nettoyer la solution/projet. Je pense que c'est un bug de la qmake configuration.
Pour le fixer de façon permanente, vous devez trouver le fichier C:\MyQtDir\mkspecs\win32-msvc2008\qmake.conf. Pour d'autres configs, vous devez changer win32-msvc2008.
Pour moi, c'était à C:\Qt\2009.03\qt\mkspecs\win32-msvc2008\qmake.conf
Recherche de l'expression "QMAKE_MOC". Vous trouverez quelques lignes comme ceci:
QT_INSTALL_BINS est un chemin qui semble être erronée. Le répertoire des séparateurs sont toujours des"/", mais doit être '\'. Pour le moment, je ne sais pas exactement où je dois changer de QT_INSTALL_BINS. Mais l'intervalle qt trajectoire ne change pas pour moi, je l'ai donc remplacé la macro en dur définis par les chemins:
Maintenant il n'y a pas de problèmes avec le moc plus. Reconstruit fonctionnera très bien aussi.
Espère que cette aide 😉
OriginalL'auteur Bersi
Avez-vous essayé d'utiliser le compilateur/outils inclus avec Qt /mingw/bin? (Sur mon système, Qt est installé dans C:\Qt\2009.03.) La dernière fois que j'ai vérifié, la distribution non-commerciale de Qt ne fonctionnera pas avec Visual Studio. J'ai juste essayé ce à partir de l'intervalle Qt command prompt et cela a fonctionné.
Espère que cette aide.
OriginalL'auteur kenrogers
Ar vous assurer que le moc n'est pas généré? Il vit dans le répertoire de Débogage, de sorte que vous aurez besoin de faire un #include "Debug/chaîne de test.moc" ou #include avec un supplément -IDebug option du compilateur.
OriginalL'auteur Gunther Piez
En cas de encore de la compilation avec VC nmake il y a une solution pour ce bug ici:
http://bugreports.qt-project.org/browse/QTBUG-6470
OriginalL'auteur vladimir