2009-08-12 8 views
4

J'essaie d'obtenir mon Visual Studio plug-in Qt au travail, afin de recompiler les bibliothèques Qt i administraient les commandes suivantes à partir d'une invite de commande VS:Compiler des bibliothèques Qt pour les exécuter avec Visual Studio 2008, pourquoi nmake échoue?

c:\*Qtfolder*>configure -platform -win32-msvc2008 

Après cela, je courais nmake et a commencé la processus de compilation. Il est allé pendant environ 45 minutes avant d'abandonner en raison d'erreurs de liaison. J'ai reçu un total de huit erreurs de "symbole externe non résolu", toutes provenant de QNetworkReplyHandler.obj et de FrameLoaderClientQt.obj. Aucune de ces bibliothèques n'est nécessaire, mais la compilation est annulée à cause de leurs erreurs. Quand il avorte le reste des bibliothèques semblent être presque fini, en fait, je peux même charger et compiler mes projets Qt dans Visual Studio à ce stade, ils ont juste buggy parce que probablement toutes les bibliothèques ne sont pas compilées. Quelqu'un at-il couru dans ce domaine ou peut-être savoir pourquoi nmake échoue?

Il me semble que si je pouvais dire au compilateur de continuer malgré les erreurs ou d'omettre les bibliothèques fautives cela pourrait fonctionner. La configuration de Qt a beaucoup d'options mais je ne trouve rien qui fasse ce dont j'ai besoin, et malheureusement je ne trouve pas de référence en ligne sur les options de configuration de Qt, tout ce qui vient avec une recherche google est pour "Qtopia" raison.

Voici la dernière erreur. Il y a sept autres qui sont fondamentalement exactement la même erreur, juste pour des symboles différents

FrameLoaderClientQt.obj : error LNK2019: unresolved external symbol "protected: 
void __thiscall QWebPage::downloadRequested(class QNetworkRequest const &)" (?do 
[email protected]@@[email protected]@@Z) referenced in function "pu 
blic: virtual void __thiscall WebCore::FrameLoaderClientQt::startDownload(struct 
WebCore::ResourceRequest const &)" ([email protected]@[email protected] 
@[email protected]@@Z) 
..\..\..\..\lib\QtWebKitd4.dll : fatal error LNK1120: 8 unresolved externals 
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN 
\link.EXE"' : return code '0x460' 
Stop. 
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN 
\nmake.exe"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2' 
Stop. 
+1

Pourrait-on voir ces erreurs de symboles externes non résolus? – richardwb

+0

@richard, je l'ai ajouté à la question –

Répondre

4

Apparemment, vous pouvez contourner cette erreur en supprimant les deux instances de mocinclude.tmp dans src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared. (Source). En outre, lorsque vous exécutez configure, vous pouvez lui passer un argument 'help' pour obtenir la liste des arguments qu'il comprend (c'est-à-dire configure help).

+0

Merci, je vais essayer. J'ai vu l'aide configurer sur ma machine, c'est juste que je ne pouvais pas trouver une référence en ligne à lier. J'ai fini par essayer d'utiliser l'option/K pour que nmake continue après les erreurs mais j'ai eu le même problème. –

+0

Cette solution a fonctionné le mieux. Si vous faites l'option -no-webkit, elle se compile avec succès, mais lorsque vous essayez d'importer vos projets Qt vers VS, cela échoue avec une erreur "bibliothèques Qt incompatibles" (ou quelque chose comme ça). –

2

Je ne sais pas si cela vous aidera mais voici les options de configuration que j'utilisé pour construire avec succès Qt 4.5 pour Visual Studio Express 2008 sur Vista:

C: \ Qt \ 2009.01 \ configure -no-sql-sqlite -no-qt3support -no-opengl -platform win32-msvc2008 -no-libtiff -no-dbus -no-phonon -no-phonon -backend -no-webkit

J'ai reçu ça de thi s Qt 4.5 with Visual Studio 2008 (VC++ Express) HowTo. Assurez-vous de suivre toutes les instructions afin d'obtenir les exemples à construire dans VS.

+0

C'est l'une des principales références que j'ai utilisées, j'ai essayé de jouer avec les paramètres de ligne de commande pour configure.exe mais ils donnent tous le même résultat, nmake échoue avec les mêmes erreurs de liaison . –

1

J'ai parcouru le forum Qt après avoir lu la réponse de richardwb et trouvé another proposed solution qui doit exécuter configure avec l'option -no-webkit pour ignorer la bibliothèque fautive. La commande configure finale ressemblerait à ceci

configure -no-webkit -platform win32-msvc2008 

Je vais essayer et la solution de mise à jour richardwb et quand je suis fait

Questions connexes