Come costruire Qt per Visual Studio 2010


137

Ho faticato a trovare un how-to che fornisca una soluzione stabile per l'utilizzo di Qt con Visual Studio 2010, quindi dopo aver raccolto tutte le informazioni e alcune prove ed errori, vorrei scrivere la mia soluzione in una guida.

Il problema o perché non è possibile utilizzare i binari predefiniti?

Sembra che l'uso dei binari creati per Visual Studio 2008 possa funzionare in alcuni casi speciali, ma ho scoperto che non funzionano. Nel mio caso hanno compilato OK, ma producono errori di runtime, in questo modo:

problem2

o quando avviato da Visual Studio 2010:

problema

Aggiornamento : ho trovato un post sul blog che analizza il motivo per cui funziona per alcune persone, mentre non per altre. In una parola, dipende dal fatto che Visual Studio 2008 sia installato o meno sullo stesso computer. http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/

La cosa più importante (che non ho realizzato stupidamente) era il fatto che NON PUOI usare le librerie compilate di Visual Studio 2008 e le DLL (disponibili sulla pagina Web Qt) se non hai installato Visual Studio 2008. Il motivo è perché l'SDK Qt scaricato è una build di debug che dipende dal debugCRT VC9.0, il che significa che è necessario il debug runtime di Visual C ++ 2008, che NON è disponibile come programma di installazione ridistribuibile. L'unico modo per installare DebugCRT è installare Visual Studio 2008 per intero.


Grazie per i tuoi sforzi. Inoltre, potrebbe essere utile spiegare perché non si dovrebbero usare i binari VS 2008. Ho sviluppato alcuni progetti di test prototipo con loro e VS2010 senza riscontrare alcun problema, ma ricordo qualcuno che ha menzionato che ci sono problemi di distribuzione?
Ralf,

Ho aggiunto le mie esperienze all'ultima sezione. In genere ho trovato molti rapporti in rete che indicano che è necessario compilare Qt se si desidera utilizzarlo con VS2010. C'è una pagina che ti dice che potrebbe essere la presenza di VS2008.
hyperknot,

Fantastico, sono sicuro che molte persone lo troveranno utile :)
Ralf

Ehi, ecco cosa ottengo quando lo faccio nmake. Ho usato il seguente prima di tentare di costruire: configure.exe -release -no-ltcg.
Mateen Ulhaq,

2
Per riferimento futuro potresti essere interessato a sapere che il sito della documentazione di Qt contiene effettivamente le istruzioni di installazione per la compilazione dal sorgente .
Ephphatha,

Risposte:


142

Prima di tutto, è molto importante capire che per l'utilizzo di Qt con Visual Studio 2010, non è possibile utilizzare i binari predefiniti creati per Visual Studio 2008 , ma è necessario compilarlo dal sorgente.

Download di Qt

Su https://www.qt.io/download/

Aggiornamento 2017: l'ultimo ramo Qt 4.x (Qt 4.8.6) ha 2 pacchetti predefiniti, che ora sono nella sezione archivio:

  1. http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2010-4.8.6.exe
  2. http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe

Non scaricare Qt facendo clic su "Librerie Qt 4.8.6 per Windows (Visual Studio 2008, 218 MB)" , ma facendo clic sul collegamento "zip" sopra di esso.

link-selezione

Su quel link, ottieni un grande file zip come "qt-everywhere-opensource-src-4.8.6.zip" . Decomprimilo in una cartella e rendi il suo percorso qualcosa di bello e piccolo, ad esempio "E: \ Qt"

Prompt dei comandi di Visual Studio

Ora che abbiamo i sorgenti, dobbiamo creare i binari. Per farlo, apri il Microsoft Visual Studio 2010\Visual Studio Tools\Visual Studio Command Prompt (2010)link dal tuo menu di avvio o persino appuntalo sulla barra delle applicazioni (una buona idea). Questo è un prompt dei comandi speciale che ha tutte le variabili impostate per la creazione con gli strumenti di Visual Studio 2010.

Una volta all'interno del prompt dei comandi, passare alla cartella Qt estratta usando il modo DOS della vecchia scuola, il che significa che è necessario modificare la lettera di unità di E:, inserire le directory di cd Qted elencare i contenuti di dir di dir. Puoi usare il tasto tab per aiutarti con i nomi delle directory. Quando sei arrivato alla directory corretta, un dircomando dovrebbe restituire qualcosa del genere.

riga di comando

Edificio Qt

Ora è il momento di configurare e compilare. Per configurare un Qt minimalista, sto usando i seguenti flag con configure.exe. Basta copiarlo e incollarlo nella riga di comando. Cerca nel manuale di riferimento Qt quale bandiera usare o non usare.

configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg

Una volta configure.exeterminato (sono stati 10 minuti per me), dovrai iniziare il processo di compilazione. Ci vorranno circa 20-30 minuti con le bandiere sopra. Per avviarlo, basta digitare:

nmake

Impostazione delle variabili d'ambiente

Fondamentalmente, abbiamo finito. Tutto quello che devi fare è impostare le variabili di ambiente ( QTDIRe PATH), che indicano ai programmi dove trovare Qt. Se sei su Windows 7, puoi usare il comando seguente per impostare la QTDIRtua directory di installazione.

setx QTDIR e:\Qt

Per l'impostazione di PATH, consiglio vivamente di utilizzare Path Editor . All'interno di Path Editor

add the directory of Qt\bin to your PATH

(non importa se si trova nel percorso di sistema o nel percorso utente)

Se preferisci usare Control Panel\System\Environment Variables, puoi anche impostare questi lì.

Componente aggiuntivo Qt Visual Studio

Ecco qua, dopo un log-logon o un riavvio, tutte le applicazioni demo di Qt dovrebbero avviarsi correttamente (consiglio di dare un'occhiata a bin \ qtdemo.exe ). Ora puoi scaricare e installare il componente aggiuntivo di Visual Studio (qt-vs-addin-1.1.9.exe) dalla pagina di download di Qt, funzionerà perfettamente.

aggiungere

Appendice A: Istruzioni ufficiali:

C'è una pagina sul wiki ufficiale sul sito web di Qt chiamata Qt 4.8 Installazione di Qt per Windows , ma ho trovato che mancava di informazioni importanti.

Riferimenti

Forum DevNet Qt Flag
consigliati per una build Qt minimalista
Creazione di Qt 4.5 con Visual C ++ 2010
Come compilare Qt come
Qt statico 4.8: Configurare le opzioni per Qt
Modificare la variabile di ambiente PATH in
Windows senza problemi - op111.net


2
Questo è fantastico, ma aggiungerei -qt-sql-sqlite ai flag di configurazione se non vuoi avere problemi con il tuo Qt Assistant personalizzato. Sembra che abbia bisogno di questo plugin per leggere correttamente i database della documentazione.
neuviemeporte,

Ottima guida! Una nota - stavo provando ad installarmi per un giorno o due e nel processo avevo aggiunto alcune variabili di percorso a mingw - questi si sono rotti e avevano bisogno di essere rimossi prima che le cose funzionassero.
David Hall,

2
Un'altra nota: gli strumenti VS rifiutano di creare QT se ci sono degli spazi nel percorso della cartella in cui si trovano le origini QT. Almeno lo fa nel mio caso.
Roman Kruglov,

10
Solo una domanda: perché Qt non fornisce ancora una distribuzione precompilata di VS 2010?
Matt Montag,

2
Solo per informarvi ragazzi. Il link nel post originale non funziona più. Ci vuole un po 'di tempo per cercare nel sito di Digia e scoprire che il componente aggiuntivo non è nemmeno lì. Il link principale da seguire è: qt-project.org/downloads
paul23

25

Qt V4.8.0 contiene file binari predefiniti per Visual Studio 2010, quindi non è più necessario farlo: http://qt.nokia.com/downloads/windows-cpp-vs2010


2
parsley72 i binari predefiniti per Visual Studio 2010 sono utili solo se si prevede di lavorare in modalità debug a 32 bit, altrimenti la guida pubblicata da zsero è molto utile soprattutto se si desidera modificare le opzioni relative all'architettura.

Assolutamente! Ma la domanda è stata posta prima che fossero disponibili le librerie predefinite, quindi sto facendo sapere alla gente che ora esiste un'alternativa.
prezzemolo72

1

Un collegamento a una potenziale soluzione è sempre il benvenuto, ma per favore aggiungi un contesto attorno al collegamento in modo che i tuoi colleghi utenti abbiano qualche idea di cosa sia e perché sia ​​lì. Cita sempre la parte più pertinente di un link importante, nel caso in cui il sito di destinazione non sia raggiungibile o rimanga permanentemente offline. Tieni presente che essere a malapena più di un collegamento a un sito esterno è una possibile ragione del perché e come vengono eliminate alcune risposte .
Maximilian Ast,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.