Come compilare Qt 5 su Windows o Linux, 32 o 64 bit, statici o dinamici su VS2010, VS2012, VS2013 o VS2015 Express o g ++

Solo un post per aiutare quei ragazzi che cercano di farlo, dal momento che non ho un blog.

Funziona anche per Linux. Sentiti libero di modificarlo e migliorarlo.

Nota: C’è anche un altro articolo che ho scritto per compilare da fonte GIT qui con uno script automatico su Windows. Puoi modificarlo per Linux poiché la differenza è mostrata in questo post.

Questo articolo viene continuamente aggiornato. Se questo ti aiuta, ti preghiamo di dargli un “pollice in su” in modo che io possa sapere che sta aiutando le persone e non essere inutile.

Se avete commenti o avete trovato errori di battitura, fatemelo sapere per poterli correggere.

Per prima cosa, non importa se si desidera compilare la versione a 32 o 64 bit. L’unica differenza è la scorciatoia del prompt dei comandi che devi scegliere da Visual Studio, che inizializzerà diverse variabili d’ambiente.


Iniziamo con questo:

  1. Scarica e installa Perl: link per il download

  2. Scarica e installa Python: link per il download

  3. Scarica e installa Windows SDK (probabilmente non necessario, ma consigliato) Io uso Windows 8, quindi questa è la versione che ho usato: Scarica il link , altrimenti trova la versione corretta per il tuo Windows.

  4. Scarica e installa DirectX SDK (probabilmente necessario se vuoi compilare con OpenGL ) Scarica il link

  5. Scarica ed estrai jom in una cartella (non necessario per linux) ( jom è uno strumento per compilare roba con VS in parallelo, c’è un modo per farlo con nmake , ma non ho familiarità con esso) Download link

  6. Scarica Qt Opensource ed C:\Qt\Qt5.6 , dì a C:\Qt\Qt5.6 , così ora la cartella qtbase può essere trovata in C:\Qt\Qt5.6\qtbase .

  7. Solo per Windows: VUOI VERAMENTE TOTALMENTE STATICO?

    Di solito, anche se si sceglie la compilazione come statica, il compilatore stesso non fonderà le sue librerie in modo statico. Se vuoi che il tuo sorgente compilato sia completamente statico rispetto al compilatore (Visual Studio), devi fare questo aggiustamento nei file QMAKE di Qt.

    Vai al file (a partire dalla tua directory dei sorgenti Qt), per le versioni superiori al 2012, usa la versione giusta ovunque (ad esempio win32-msvc2015) :

    • un. Per VS2012: qtbase \ mkspecs \ win32-msvc2012 \ qmake.conf

    • b. Per VS2010: qtbase \ mkspecs \ win32-msvc2010 \ qmake.conf

    • c. Per Qt 5.5.0 e versioni successive (con qualsiasi versione VS): qtbase \ mkspecs \ common \ msvc-desktop.conf

    e modifica le seguenti linee

      QMAKE_CFLAGS_RELEASE = -O2 -MD QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi QMAKE_CFLAGS_DEBUG = -Zi -MDd 

    a

      QMAKE_CFLAGS_RELEASE = -O2 -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi QMAKE_CFLAGS_DEBUG = -Zi -MTd 

Nota: Qt 5.6+ hanno un parametro configure -static-runtime che lo farà per te. Potrebbe non essere necessario farlo manualmente più per le nuove versioni di Qt.

  1. Avvia il terminale in linux, o in Windows, avvia i terminali di Visual Studio (che hanno le variabili di ambiente corrette impostate, o in alternativa usa vcvarsall.bat ). Per avviare il prompt dei comandi e lasciarlo fare automaticamente per te, vai su Start, Tutti i programmi:

    Per le versioni di Windows precedenti alla 8: trovare la cartella Microsoft Visual Studio 201x e avviare il prompt dei comandi (x86 per 32 bit o x64 per 64 bit).

    Per Windows 8: andare su Start , digitare “cmd” e verranno visualizzate tutte le versioni disponibili per il prompt dei comandi. Scegli la versione di Visual Studio appropriata (x86 per 32 bit o x64 per 64 bit).

Di seguito è riportato uno screenshot di come potrebbe essere. Tendi sempre a selezionare “Nativo” se esiste.

inserisci la descrizione dell'immagine qui

9.

  • Per VS2012: eseguire i seguenti comandi per VS2012

      set QMAKESPEC=win32-msvc2012 set QTDIR=C:\Qt\Qt5.7\qtbase set PATH=C:\Qt\Qt5.7\qtbase\bin;%PATH% 

Nota: l’impostazione della variabile di ambiente QMAKESPEC è considerata errata per le versioni Qt 5.8+. Non farlo per le nuove versioni.

Per il collegamento dinamico (richiede 8 GB)

 configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop 

Per il collegamento dinamico senza esempi (richiede 2 GB)

 configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -nomake examples -nomake tests Now the last command depends on what you want to compile. Just type configure -help and see what the available command-line parameters are. 

Per il collegamento statico (richiede 70 GB, sì è pazzesco, è più ragionevole non fare esempi e demo).

 configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -static 

Per il collegamento statico senza esempi (richiede 4 GB, ha più senso).

 configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -static -nomake examples -nomake tests 

Ora questo richiederà un minuto o due, quindi usa jom come segue (assumendo che sia estratto in C: \ Qt \ jom):

 C:\Qt\jom\jom.exe -j 50 

50 rappresenta il numero di core che si desidera utilizzare. Io uso 50 perché ho 8 thread e usando solo 8 non occuperò completamente tutti i core, quindi più è meglio, ma non diventare troppo avido perché potrebbe rendere il tuo sistema non reattivo.

  • Per VS2010: eseguire i seguenti comandi per VS2010

     set QMAKESPEC=win32-msvc2010 set QTDIR=C:\Qt\Qt5.7\qtbase set PATH=C:\Qt\Qt5.7\qtbase\bin;%PATH% 

Nota: l’impostazione della variabile di ambiente QMAKESPEC è considerata errata per le versioni Qt 5.8+. Non farlo per le nuove versioni. Per il collegamento dinamico (richiede 8 GB)

 configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop 

Per il collegamento dinamico senza esempi (richiede 2 GB)

 configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -nomake examples -nomake tests 

L’ultimo comando dipende da ciò che vuoi compilare. Basta digitare configure -help e vedere quali sono i parametri della riga di comando disponibili. Per il collegamento statico (richiede 70 GB, sì è pazzesco, è più ragionevole non fare esempi e demo).

 configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -static 

Per il collegamento statico senza esempi (richiede 4 GB, ha più senso).

 configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -static -nomake examples -nomake tests 

Ora questo richiederà un minuto o due, quindi usa jom come segue (assumendo che sia estratto in C: \ Qt \ jom):

 C:\Qt\jom\jom.exe -j 50 

50 rappresenta il numero di core che si desidera utilizzare. Io uso 50 perché ho 8 thread e usando solo 8 non occuperò completamente tutti i core, quindi più è meglio, ma non diventare troppo avido perché potrebbe rendere il tuo sistema non reattivo.

  • Per Linux:

C’è una piccola differenza per Linux su Windows. È raccomandato in Linux per l’ installazione dopo la compilazione. Onestamente questo è l’unico modo in cui funziona per me senza problemi.

Esegui i seguenti comandi per Linux. Non dimenticare di sostituire i percorsi con i percorsi corretti della tua sorgente Qt

  export QMAKESPEC=linux-g++ export QTDIR=/home/username/Qt5.7/qtbase export PATH=/home/username/Qt5.7/qtbase/bin:$PATH 

Nota: l’impostazione della variabile di ambiente QMAKESPEC è considerata errata per le versioni Qt 5.8+. Non farlo per le nuove versioni.

Diciamo che vuoi installare il sorgente compilato nella directory /home/username/Qt5.7-install . In questo caso, aggiungi quanto segue a uno dei comandi di configurazione seguenti:

 -prefix /home/username/Qt5.7-install 

Avvertenza : NON installare nella stessa directory di origine. Questo è assolutamente sbagliato!

Se -prefix non è impostato, verrà scelto il percorso predefinito, che è /usr/local/ I guess. Non mi piace installare nulla usando root. Preferisco sempre l’installazione nella mia cartella utente, in modo che la reversibilità e gli aggiornamenti non siano un problema.

Di seguito sono riportati diversi comandi di configure possibili in base a ciò che si desidera eseguire.

Per il collegamento dinamico (richiede 8 GB)

 ./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop 

Per il collegamento dinamico senza esempi (richiede 2 GB)

 ./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -nomake examples -nomake tests 

Ora l’ultimo comando dipende da ciò che vuoi compilare. Basta digitare ./configure -help e vedere quali sono i parametri della riga di comando disponibili.

Per il collegamento statico (richiede 70 GB, sì è pazzesco, è più ragionevole non fare esempi e test).

 ./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -static 

Per il collegamento statico senza esempi (richiede 4 GB, ha più senso).

 ./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -static -nomake examples -nomake tests 

Dopo aver completato, esegui make command

 make -j 50 

50 rappresenta il numero di core che si desidera utilizzare. Io uso 50 perché ho 8 thread e usando solo 8 non occuperò completamente tutti i core, quindi più è meglio, ma non diventare troppo avido perché potrebbe rendere il tuo sistema non reattivo.

  1. Attendere 2 o più ore fino al termine della compilazione.

  2. Pulire! Puoi risparmiare molto spazio usando questo comando per Windows: C:\Qt\jom\jom.exe clean E questo comando per linux: make clean

È ansible ridurre la dimensione della cartella compilata da 8 GB a 2,5 GB (per il collegamento dinamico) e da 70 GB a 35 GB (per il collegamento statico).


Per utilizzare questa versione compilata in Qt Creator:

  1. Avvia Qt Creator
  2. Vai a Strumenti, Opzioni
  3. Seleziona Costruisci ed esegui dall’elenco a sinistra.
  4. Vai alla scheda “Qt Versions”
  5. Clicca su “Aggiungi” e seleziona qmake dalla cartella in cui si trova il tuo cestino in qtbase, quindi da sopra:

    C: \ Qt \ Qt5.7 \ qtbase \ bin \ qmake.exe

(o per Linux scegliere il percorso in cui è stata installata l’origine Qt compilata, che equivale a /home/username/Qt5.7-install/qtbase/bin/qmake in questo tutorial)

  1. Clicca “Applica”
  2. Vai alla scheda “Kit”
  3. Clicca “Aggiungi”
  4. Dagli un nome, scegli il compilatore appropriato (PER VISUAL STUDIO EXPRESS NON SELEZIONA AMD64 PER 64-BIT, NON FUNZIONERÀ, SCEGLI X86_amd64 INSTEAD)
  5. Clicca OK.

Ora apri un progetto e troverai quello che ti chiede di scegliere il kit che hai aggiunto.

Godere 🙂