Como compilar o Qt 5 no Windows ou Linux, 32 ou 64 bits, estático ou dynamic no VS2010, VS2012, VS2013 ou VS2015 Express ou g ++

Apenas um post para ajudar esses caras tentando fazer isso, já que eu não tenho um blog.

Isso funciona para o Linux também. Sinta-se à vontade para editá-lo e melhorá-lo.

Nota: Há também outro artigo que escrevi para compilar a partir da fonte do GIT aqui com um script automatizado no Windows. Você pode modificá-lo para o Linux, pois a diferença é mostrada neste post.

Este artigo está sendo atualizado continuamente. Se isso ajudar você, por favor, dê um “joinha” para que eu possa saber que está ajudando as pessoas e não sendo inútil.

Se você tiver algum comentário ou encontrou erros de digitação, por favor me avise para que eu possa corrigi-los.

A primeira coisa, não importa se você deseja compilar a versão de 32 ou 64 bits. A única diferença é o atalho de prompt de comando que você deve escolher no Visual Studio, que inicializará diferentes variables ​​de ambiente.


Vamos começar com isso:

  1. Baixe e instale o Perl: link para download

  2. Baixe e instale o Python: link para download

  3. Baixe e instale o Windows SDK (provavelmente não é necessário, mas recomendado) Eu uso o Windows 8, então esta é a versão que eu usei: Download link , Caso contrário, encontre a versão apropriada para o seu Windows.

  4. Baixe e instale o DirectX SDK (provavelmente necessário se você quiser compilar com o OpenGL ) Link para download

  5. Baixe e extraia jom para alguma pasta (não é necessário para o linux) ( jom é uma ferramenta para compilar coisas com o VS em paralelo, há uma maneira de fazer isso com o nmake , mas eu não estou familiarizado com ele) Download link

  6. Faça o download do Qt Opensource , e extraia, digamos para C:\Qt\Qt5.6 , então agora a pasta qtbase pode ser encontrada em C:\Qt\Qt5.6\qtbase .

  7. Apenas para Windows: VOCÊ QUER REALMENTE ESTÁ ESTÁTICO?

    Geralmente, mesmo se você escolher que a compilation seja estática, o próprio compilador ainda não mesclará suas bibliotecas estaticamente. Se você quer que sua fonte compilada seja totalmente estática com relação ao compilador (Visual Studio), você tem que fazer este ajuste nos arquivos QMAKE do Qt.

    Vá para o arquivo (a partir do diretório de origem do Qt), para versões superiores a 2012, use a versão correta em todos os lugares (como win32-msvc2015) :

    • uma. Para VS2012: qtbase \ mkspecs \ win32-msvc2012 \ qmake.conf

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

    • c. Para o Qt 5.5.0 e posterior (com qualquer versão do VS): qtbase \ mkspecs \ common \ msvc-desktop.conf

    e edite as seguintes linhas

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

    para

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

Nota: Qt 5.6+ tem um parâmetro de configuração -static-runtime que fará isso por você. Você pode não precisar mais fazer isso manualmente para novas versões do Qt.

  1. Inicie o terminal no linux ou, no Windows, inicie os terminais do Visual Studio (que possuem as variables ​​de ambiente corretas definidas ou, como alternativa, use vcvarsall.bat ). Para iniciar o prompt de comando e deixá-lo fazer isso automaticamente para você, vá para Iniciar, Todos os Programas:

    Para versões do Windows anteriores a 8: Localize a pasta Microsoft Visual Studio 201x e inicie o prompt de comando (x86 para 32 bits ou x64 para 64 bits).

    Para o Windows 8: vá para Iniciar , digite “cmd” e todas as versões disponíveis para o prompt de comando serão exibidas. Escolha a versão do Visual Studio apropriada (x86 para 32 bits ou x64 para 64 bits).

A seguir, uma captura de canvas de como isso pode parecer. Sempre tende a selecionar “Nativo”, se existir.

insira a descrição da imagem aqui

9

  • Para VS2012: Execute os seguintes comandos para VS2012

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

Nota: A configuração da variável de ambiente QMAKESPEC é considerada errada para as versões Qt 5.8+. Não faça isso para as novas versões.

Para vinculação dinâmica (precisa de 8 GBs)

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

Para binding dinâmica sem exemplos (precisa de 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. 

Para link estático (precisa de 70 GBs, sim, é uma loucura, é mais razoável não fazer os exemplos e demonstrações).

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

Para link estático sem exemplos (precisa de 4 GB, faz mais sentido).

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

Agora, isso levará um ou dois minutos e, em seguida, use jom da seguinte maneira (supondo que seja extraído em C: \ Qt \ jom):

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

50 representa o número de núcleos que você deseja usar. Eu uso 50 porque eu tenho 8 threads e usando apenas 8 não ocupará todos os núcleos completamente, então mais é melhor, mas não fique muito ganancioso, pois poderia fazer o seu sistema não responder.

  • Para VS2010: Execute os seguintes comandos para o VS2010

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

Nota: A configuração da variável de ambiente QMAKESPEC é considerada errada para as versões Qt 5.8+. Não faça isso para as novas versões. Para vinculação dinâmica (precisa de 8 GBs)

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

Para binding dinâmica sem exemplos (precisa de 2 GB)

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

O último comando depende do que você deseja compilar. Basta digitar configure -help e ver quais são os parâmetros de linha de comando disponíveis. Para link estático (precisa de 70 GBs, sim, é uma loucura, é mais razoável não fazer os exemplos e demonstrações).

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

Para link estático sem exemplos (precisa de 4 GB, faz mais sentido).

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

Agora, isso levará um ou dois minutos e, em seguida, use jom da seguinte maneira (supondo que seja extraído em C: \ Qt \ jom):

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

50 representa o número de núcleos que você deseja usar. Eu uso 50 porque eu tenho 8 threads e usando apenas 8 não ocupará todos os núcleos completamente, então mais é melhor, mas não fique muito ganancioso, pois poderia fazer o seu sistema não responder.

  • Para linux:

Há uma pequena diferença para o Linux sobre o Windows. É recomendado que o linux seja instalado após a compilation. Honestamente esta é a única maneira que funciona para mim sem problemas.

Execute os seguintes comandos para o Linux. Não se esqueça de replace os caminhos pelos caminhos corretos da sua fonte do Qt

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

Nota: A configuração da variável de ambiente QMAKESPEC é considerada errada para as versões Qt 5.8+. Não faça isso para as novas versões.

Digamos que você queira instalar a fonte compilada no diretório /home/username/Qt5.7-install . Neste caso, adicione o seguinte a qualquer um dos comandos de configuração abaixo:

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

Aviso : NÃO instale no mesmo diretório de origem. Isso está totalmente errado!

Se -prefix não estiver definido, o caminho padrão será escolhido, o que é /usr/local/ eu acho. Eu não gosto de instalar nada usando root. Eu sempre prefiro instalar na minha pasta de usuário, para que a reversibilidade e as atualizações não sejam um problema.

A seguir, são possíveis comandos de configure diferentes, dependendo do que você deseja fazer.

Para vinculação dinâmica (precisa de 8 GBs)

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

Para binding dinâmica sem exemplos (precisa de 2 GB)

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

Agora o último comando depende do que você deseja compilar. Basta digitar ./configure -help e ver quais são os parâmetros de linha de comando disponíveis.

Para link estático (precisa de 70 GBs, sim, é uma loucura, é mais razoável não fazer os exemplos e testes).

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

Para link estático sem exemplos (precisa de 4 GB, faz mais sentido).

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

Depois de feito, execute o comando make

 make -j 50 

50 representa o número de núcleos que você deseja usar. Eu uso 50 porque eu tenho 8 threads e usando apenas 8 não ocupará todos os núcleos completamente, então mais é melhor, mas não fique muito ganancioso, pois poderia fazer o seu sistema não responder.

  1. Aguarde 2 horas até que a compilation esteja completa.

  2. Limpar! Você pode economizar muito espaço usando este comando para o Windows: C:\Qt\jom\jom.exe clean E este comando para o linux: make clean

Você pode reduzir o tamanho de sua pasta compilada de 8 GB para 2,5 GB (para vinculação dinâmica) e de 70 GB para 35 GB (para vinculação estática).


Para usar esta versão compilada no Qt Creator:

  1. Inicie o Qt Creator
  2. Vá para Ferramentas, Opções
  3. Selecione Construir e Executar na lista à esquerda.
  4. Vá para a guia “Versões do Qt”
  5. Clique em “Adicionar” e selecione qmake da pasta onde seu bin no qtbase está, portanto, de cima:

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

(ou para Linux escolha o caminho onde você instalou a fonte Qt compilada, que é equivalente a /home/username/Qt5.7-install/qtbase/bin/qmake neste tutorial)

  1. Clique em “Aplicar”
  2. Vá para o separador “Kits”
  3. Clique em “Adicionar”
  4. Dê-lhe um nome, escolha o compilador apropriado (PARA VISUAL STUDIO EXPRESS NÃO SELECCIONAR amd64 PARA 64-BIT, NÃO FUNCIONARÁ, ESCOLHA x86_amd64 INSTEAD)
  5. Clique OK.

Agora basta abrir um projeto e você vai encontrá-lo pedindo para escolher o kit que você adicionou.

Apreciar 🙂