2016-07-12 45 views
10

Sono consapevole che ci sono molti post su questo, ma sinceramente non ne ho capito niente.Come utilizzare MinGW-64 con Qt Creator

Quindi, come installare un kit per il mio Qt Creator (open source 5.7)?

  • Ho già scaricato e installato MSYS2 .... non so cosa fare con esso.
  • Ho già scaricato e installato Qt64 - NG .... non ho idea di cosa fare dopo.

voglio solo essere in grado di sviluppare in Qt e scelto betwen MinGW MinGW 32 e 64.

Grazie in anticipo!


MODIFICA: Ho anche controllato la pagina wiki. La maggior parte dei comandi non ha funzionato. E mi è stato detto che è obsoleto.

risposta

21

So che la vostra domanda è come si fa a installare un kit per il Qt Creator, ma prima penso che sia necessaria un'introduzione (Ci scusiamo per i tuoi occhi, inglese non è la mia lingua madre)

Introduzione

L'intenzione è di utilizzare il compilatore GCC sotto Windows, il che significa che abbiamo bisogno di MinGW (GNU minimalista per Windows).

MinGW funziona solo per 32 bit, quindi abbiamo bisogno delle forcelle a 64 bit, che significa utilizzare i sapori MinGW-w64 o TDM-GCC.

  • MinGW, compilatore GCC per applicazioni a 32 bit.
  • MinGW-w64, compilatore GCC per applicazioni a 32 e 64 bit.
  • TDM-GCC, compilatore GCC per applicazioni a 32 e 64 bit.

Con ciò possiamo creare le nostre applicazioni/programmi in Windows. Inoltre, abbiamo altri due strumenti diversi:

  • libreria Qt Framework, per creare di GUI/Interfacce con compatibilità multi-piattaforma.
  • Qt Creator, un editor C/C++, con strumenti di modifica aggiuntivi per Qt Framework.


Circa la catena compatibilità binaria

Quando facciamo una domanda, che abbiamo di seguire la catena di librerie compilate con la stessa versione del compilatore, allo stesso modo che abbiamo per seguire la interfaccia binario dell'applicazione (32 o 64 bit) per tali librerie.

Ciò significa che, se vogliamo compilare una domanda di 32 e 64 bit con MinGW-W64 5.3, più il framework Qt 5.7, abbiamo bisogno:

  • MinGW-W64 5.3 (con le bandiere di 32 bit in la config) e la compilazione di Qt 5.7 Framwork a 32 bit compilata in MinGW-w64 (MinGW-w64 versione 5.3 o inferiore purché mantengano la compatibilità del codice binario con il nostro compilatore).
  • MinGW-w64 5.3 (con flag 64 bit nella configurazione) e Qt 5.7 Framwork 64 bit compilati in MinGW-w64 (MinGW-w64 versione 5.3 o precedenti purché mantengano la compatibilità del codice binario con il nostro compilatore).

Ora arriva la cosa strana. Alla pagina web ufficiale di Qt sono disponibili solo i build a 32 bit per MinGW ... Non so perché ...

Ecco quando arriva il progetto Qt64-NG, un luogo dove ottenere i pacchetti binari Qt Framework a 64 bit per MinGW -w64. Sfortunatamente il progetto è chiuso, quindi sono disponibili solo fino alla versione Qt 5.5 Framework.

Non conosco altro posto dove ottenere pacchetti binari Qt a 64 bit più recenti per MinGW-w64 (Forse quelli del progetto MSYS2? Non ho ancora provato). Quindi, se ne hai bisogno, in questo momento deve essere compilato da te stesso (Questo è per rispondere al tuo commento di opensource 5.7).


Installare e la configurazione

Ora la tua domanda. Come installare un kit per il tuo Qt Creator. Ho intenzione di rispondere per binari a 64 bit, perché è quello che uso (e quest'ultimo non vi resta che fare la stessa cosa per il 32bit)

Da utilizzare Qt Creator con MinGW-W64, uno solo bisogno:

  • Scarica Qt Creator e installalo. Il mio consiglio è di scaricare la versione 4.1 (o superiore) snapshots se si intende utilizzare i progetti CMake.

  • Download MinGW-w64 (posix-seh, o il vostro gusto preferito) + decomprimere in una cartella.

Questo è tutto, con questo possiamo creare applicazioni a 32 e 64 bit.

In aggiunta ai passaggi precedenti, se si desidera creare applicazioni utilizzando la libreria Qt Framework (una GUI/interfaccia per le nostre applicazioni), è necessario il pacchetto binario, in questo caso 64 bit (Il binario a 32 bit pacchetto è disponibile presso la pagina ufficiale di Qt)

  • Scarica Qt64-NG (POSIX-seh, o il vostro sopra scegliere sapore) + decomprimere in una cartella.
    Dopodiché è necessario eseguire lo qtbinpatcher.exe incluso in quella directory, con un doppio clic.
    Nota: se si modifica questa directory in un altro percorso, eseguire di nuovo qtbinpatcher.

Ecco dove terminare il processo di installazione. Nel mio caso, ho tutti sotto la stessa cartella. Esempio:

D:\Programacion\mingw64_5.3.0rev0\ 
D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\ 

Ora è solo bisogno di configurare QtCreator, in questo caso:

Strumenti> Opzioni> C++, compilatori, Aggiungi> MinGW

  • In nome mettere la versione del compilatore , MinGW-5.3 x64
    È il nome che verrà mostrato nei kit
  • In Percorso del compilatore Cercare il percorso ++ compilatore C, in questo caso D:. \ Programacion \ mingw64_5.3.0rev0 \ bin \ g ++ exe

    Prendere nota in ABI è scelto di utilizzare 64 bit bandiere nel compilatore. Ecco perché abbiamo inserito il nome x64. Per 32 bit, basta duplicare e modificare la selezione.

Strumenti> Opzioni> C++, debugger, aggiungere

  • In Percorso Andare al percorso debugger, in questo caso D: \ Programacion \ mingw64_5.3.0rev0 \ bin \ gdb.exe
  • In nome inserire il nome mostrato nella versione, GDB 7.10.1 in questo caso.
    E 'il nome che verrà mostrato nel kit

E, se si vogliono creare programmi 64bits che utilizzano Qt quadro, in aggiunta a quanto sopra:

Strumenti> Opzioni> C++, le versioni Qt, Aggiungi e seleziona qmake.exe posizionato nella directory bin qt64-ng.

  • in questo caso è, D: \ Programacion \ qt64-ng \ qt-5.5.0-x64-mingw510r0-seh \ bin \ qmake.exe
  • In nome messo Qt% {Qt: Versione} (qt-5.5.0-x64-mingw510r0-seh)
    E 'il nome che verrà mostrato nella scheda Kit

Ora solo bisogno di specificare il Kit:

Strumenti> Opzioni> C++, Kit, Aggiungi

  • In nome MinGW-5.3 x64 (Qt-5,5)
  • In compilatore MinGW selezionare-5.3 x64
  • In debugger GDB selezionare 7.10.1
  • In Qt versione selezionare Qt 5.5. 0 (qt-5.5.0-x64-mingw510r0-seh)

E in CMake va the CMake percorso se uno sta per usarlo (lo uso with Ninja).

Nota: Per installare Ninja basta copiare ninja.exe alla directory \ bin mingw-W64, e al Kit, in generatore cmake cambiamento spinta per generatore -> ninja, e generatore Extra -> CodeBlocks. Ninja lancia diversi comandi make allo stesso tempo, cosa che riduce i tempi di compilazione.


Testo lungo per 1 minuto di configurazione. Il Kit è ciò che selezioniamo per compilare il progetto e uno può avere tutti i kit desiderati (CompilerA x32 + Qt5.x, CompilerB x64 + Qt5.x, CompilerX x64 + Qt4.8, etc, ecc.).

Ora, prima di finire, una cosa importante. Dopo aver creato un progetto (e il progetto è aperto), nel selettore Progetti (Ctrl + 5) dobbiamo occuparci delle variabili di Ambiente di costruzione.

Queste sono le variabili che verranno aggiunte al comando che lancia i nostri Run/Build per il test e il debug.

In PATH è necessario posizionare i percorsi su MinGW-w64 e su Qt64-NG. E a mio modesto parere, raccomando di metterlo in quest'ordine a causa di dll. Seguendo il nostro esempio:

PATH D:\Programacion\mingw64_5.3.0rev0\bin;D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\bin;the_other_paths 

A QtCreator istantanee ramo non ho bisogno di controllarlo, è fatta automaticamente


La maggior parte del C/C++ editor funziona in questo modo. Per installare l'editor, specificare il percorso del debugger del compilatore & e specificare le variabili di ambiente di compilazione per l'avvio dall'editor (ignorando quelle variabili d'ambiente che abbiamo in Windows).

Nota: Vi consiglio di compilare Qt Creator con 64 bit, a causa di accadere con il quadro, per Windows è disponibile solo in 32 bit sul sito ufficiale di Qt


modo alternativo

Dall'altro lato, abbiamo:

  • MSYS2, un ambiente di strumenti simili a Linux.

C'è tutto lo stesso, basta scaricare/installare i pacchetti con il comando pacman e sono disponibili le versioni a 32 e 64 bit. Queste applicazioni devono essere lanciate dalla shell MSYS2. Non è una cosa di compatibilità binaria, ma un percorso è importante.

Le librerie disponibili nel progetto MSYS2 possono essere utilizzate nella prima catena di strumenti che ho descritto (dovute anche alla versione MinGW-w64).


EDIT: namings corretti, l'ultima spiegazione, e ha aggiunto URL e l'installazione nota di Ninja.

+0

Buona spiegazione amico, lo userò sicuramente. Grazie! – andseg

+0

+1 per aver citato che solo la catena di strumenti i686-w64-mingw32 è confezionata con Qt Creator (e non si sa perché). Ho appena trascorso una settimana cercando di ottenere ciò che compilato bene in Cygwin funziona con Qt Creator e la causa è che Cygwin stava usando la catena di strumenti x86_64-w64-mingw32. (Il mio problema era la libreria dei miei fornitori non compatibile con la catena di strumenti i686, quindi nessun collegamento!) – PfunnyGuy

2

È necessario decidere se si intende utilizzare l'ecosistema MSYS2 o meno. Se si desidera utilizzare MSYS2, è necessario disinstallare il software Qt scaricato separatamente per evitare confusione. Per il resto di questa risposta, presumo che stai usando MSYS2.

È possibile installare questi MSYS2 pacchetti utilizzando pacman:

  • mingw-W64-i686-qt
  • mingw-W64-i686-qt-creator
  • mingw-W64-x86_64-qt
  • mingw-W64-x86_64-QtCreator

Quindi aprire una shell MinGW-W64 a 32-bit o 64-bit usando la scorciatoia appropriata nel menu di avvio, ed eseguire "QtCreator" a la riga di comando.

È anche possibile utilizzare altri sistemi di compilazione per creare il software. Ho usato CMake con successo per creare applicazioni Qt in MSYS2, invece di Qt Creator.

+1

Grazie per il commento. Ho appena scoperto che MSYS2 e Qt sono due cose diverse. Diciamo che preferisco usare la Qt. C'è un modo per installare un MinGW 64 su di esso? – andseg

+1

Pensavo che la distribuzione ufficiale di Qt creator per Windows venisse fornita in bundle con il proprio compilatore MinGW-w64. Dovresti provare a usarlo, giusto? –

+1

Viene fornito con un compilatore MinGW-32 e molti kit MSVC, ma questo è praticamente tutto. Inoltre, ho provato a eseguire l'eseguibile in una macchina a 64 bit e non ha funzionato. – andseg

1

Anche l'avvio diretto da explorer funzionerà, a meno che non sia necessario utilizzare il plugin Autotools di qtcreator, nel qual caso è necessario avviarlo da una shell msys2 (in modo che varie variabili di ambiente siano impostate correttamente).

+0

"Anche il lancio diretto da explorer funzionerà". Cosa intendi? – andseg

+1

Fare doppio clic su qtcreator.exe è ciò che intendo piuttosto che utilizzare una shell msys2. –