Compilazione di Qt 4.8.x per Visual Studio 2012

Quali passi dovrei fare per compilare Qt (versione 4.8.x) per Visual Studio 2012?

Ho già seguito attentamente le istruzioni nella risposta accettata di questa domanda (che è per VS 2010), ma il modulo WebKit non è riuscito a compilare (non sono sicuro che il messaggio di errore sia stato registrato ovunque durante la compilazione).

Ho anche visto questa domanda che chiede lo stesso, ma per VS 2012 RC (che è il motivo per cui ho pensato che questa non sarebbe una domanda doppia). Inoltre, il rispondente afferma di aver compilato Qt per VS 2011 Beta, quindi potrebbe non funzionare per VS 2012 (RTM). La compilazione richiede molto tempo, motivo per cui non l’ho ancora provato.

Almeno un problema che ho capito è che non esiste win32-msvc2012 directory win32-msvc2012 in Qt\mkspecs . Dovrei semplicemente creare quella directory e copiare i file da win32-msvc2010 , eventualmente con alcune modifiche?

Un’altra sotto-domanda è se dovrei apportare alcune modifiche ai sorgenti Qt prima di iniziare la compilazione.

Qt 4.8.3 con Visual Studio 2012 x64 (dovrebbe funzionare anche con 4.8.2)

  1. Installa Strawberry Perl

  2. Scarica il codice sorgente Qt 4.8.3 da http://qt-project.org/downloads

  3. Vai a mkspecs\win32-msvc2010 . Apri qmake.conf e cambia:

     QMAKE_COMPILER_DEFINES += _MSC_VER=1600 WIN32 

    a:

     QMAKE_COMPILER_DEFINES += _MSC_VER=1700 WIN32 
  4. Sostituisci qt-everywhere-opensource-src-4.8.3-x64\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h con questo HashSet.h .

  5. Avvia “Prompt dei comandi degli strumenti nativi di VS2012 x64”

  6. Passare alla directory sorgente Qt 4.8.3 (la directory che contiene configure.exe )

  7. Correre:

     configure -mp -opensource -nomake demos -nomake examples -platform win32-msvc2010 
  8. Seguito da:

     nmake 

Ho programmato uno strumento chiamato BlueGo che scarica automaticamente Qt 4.8.3 e lo costruisce con VS2012 x64: http://bluego.vertexwahn.de (funziona anche con VS2010 x64) (fa solo ciò che ho descritto sopra automaticamente)

Qt 4.8.4 ha bisogno di meno ritocchi rispetto a quanto descritto da Vertexwahn sopra.

  • HashSet deve ancora essere risolto (vedere la correzione di Vertexwahn ) dopo che Qt è stato estratto dall’archivio.
  • La piattaforma win32-msvc2012 è supportata tuttavia out-of-the-box (funziona anche per 64 bit nell’ambiente a 64 bit, non chiedere perché lo chiamano Win32).

Quindi semplicemente sostituire HashSet.h e compilare.

La creazione di una directory win32-msvc2012 con le seguenti modifiche non ha funzionato per me, sono necessarie ulteriori modifiche. Ciò che è esattamente necessario è descritto nella discussione che hai già collegato.

Quello che ho fatto, sono andato a Win32-msvc2010.

Lì, apri qmake.conf e cambia

QMAKE_COMPILER_DEFINES + = _MSC_VER = 1600 WIN32

a

QMAKE_COMPILER_DEFINES + = _MSC_VER = 1700 WIN32

Quindi potrei configurare usando win32-msvc2010.

Inoltre, ho usato queste modifiche: http://qt-project.org/forums/viewthread/17771 (versione di alzi)