Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Compilação Estática (Static build) Qt 5.0.2 MinGW
Forum Updated to NodeBB v4.3 + New Features

Compilação Estática (Static build) Qt 5.0.2 MinGW

Scheduled Pinned Locked Moved Portuguese
32 Posts 5 Posters 20.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    Filippe
    wrote on last edited by
    #1

    Saudações Qt Brasil.

    Estou numa busca de 2 meses para resolver meu problema mas não achei a solução ainda.

    Segue alguns dos recursos que utilizei:

    Para recompilar só o win32-g++ utilizei esses recursos:
    http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Windows#MinGW
    http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Windows_with_MinGW#Qt_4.6_and_newer

    Para compilar o Qt inteiro utilizei esse recurso:
    http://qt-project.org/wiki/Building_Qt_Desktop_for_Windows_with_MinGW

    Não encontrei um tutorial que usasse a versão 5.0.2 do Qt, por isso necessito de ajuda.

    Alguém conhece um jeito de fazer a "Static build" Qt 5.0.2 MinGW ?

    Informação adicional:
    S.O. Windows 7

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      Você tem todas as "dependências":http://qt.gitorious.org/qt/qt5/blobs/stable/README para o Qt5 instaladas?

      Qual erro você está aparecendo?

      1 Reply Last reply
      0
      • F Offline
        F Offline
        Filippe
        wrote on last edited by
        #3

        (Desculpa a demora ao responder, estava de férias)
        Li o seu link, pelo que entendi estava sem Python e Ruby, vou refazer os testes e já informo assim que terminar.

        1 Reply Last reply
        0
        • F Offline
          F Offline
          Filippe
          wrote on last edited by
          #4

          1 - Adicionei a configuração (-static -static-libgcc) na linha 'QMAKE_LFLAGS = ' <QTDIR>\mkspecs\win32-g++\qmake.conf
          ficou assim (a linha estava vazia):

          @ QMAKE_LFLAGS = -static -static-libgcc @

          2 - depois executei no Qt 5.0.2 for Desktop (MinGW 4.7)

          @>configure -platform win32-g++ -static -release -nomake examples -nomake demos -no-vcproj -no-cetest -qt-sql-mysql -plugin-sql-mysql -no-opengl -no-openvg -no-incredibuild-xge@

          3 - prossegui com

          @>mingw32-make sub-src@

          Não apareceu nenhum erro no processo.

          4 - Criei um programa simples

          5 - Adicionei o .pro

          @CONFIG += static@

          6 - Compilei com 'release'.

          O Dependency Walker acusa erro no aquivo .exe:

          bq. Error: Modules with different CPU types were found.
          Warning: At least one delay-load dependency module was not found.
          Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

          falta desses arquivos:

          bq. API-MS-WIN-CORE-COM-L1-1-0.DLL
          API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
          API-MS-WIN-CORE-WINRT-L1-1-0.DLL
          API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
          API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
          API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
          DCOMP.DLL
          GPSVC.DLL

          1 Reply Last reply
          0
          • T Offline
            T Offline
            TioRoy
            wrote on last edited by
            #5

            Este erro do Dependecy Walker, "Error: Modules with different CPU types were found." tá estranho.

            Se você rodar o programa simples, aparece que erro?

            Estranho dar falta de DCOMP.DLL (DirectComposition). Seu Windows 7 é 64bits?

            1 Reply Last reply
            0
            • F Offline
              F Offline
              Filippe
              wrote on last edited by
              #6

              bq. Se você rodar o programa simples, aparece que erro?

              Esse erro ocorre com o programa que é gerado quando você escolhe a opção

              File > New File or Project... > Qt Gui Application

              Não modifiquei, apenas criei novo projeto e compilei o código. (É a janela vazia sem menus)

              bq. Estranho dar falta de DCOMP.DLL (DirectComposition). Seu Windows 7 é 64bits?

              Sim.

              1 Reply Last reply
              0
              • R Offline
                R Offline
                Rodrigocg
                wrote on last edited by
                #7

                Vamos ver isso ai.... vou testar aqui no linux e ver no que da....

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  TioRoy
                  wrote on last edited by
                  #8

                  Filippe,

                  Mas o erro que vc mostra é do Dependency Walker. Se você executar o programa simples.... o que acontece?

                  1 Reply Last reply
                  0
                  • F Offline
                    F Offline
                    Filippe
                    wrote on last edited by
                    #9

                    Primeiro não apareceu erro nenhum, abriu normalmente (no meu pc).

                    Depois verifiquei que a path do windows estava apontando para a pasta de bibliotecas do compilador, como o objetivo da compilação estática é compilar as dll dentro do executável, retirei esse direcionamento da path.

                    Aparece essa mensagem de "Erro do sistema":

                    bq. O programa não pode ser iniciado porque está faltando Qt5Core.dll no seu computador. Tente reinstalá-lo para resolver esse problema.

                    Percebi também que o tamanho do arquivo é de 653KB (ou seja, o programa foi compilado sem as dlls)
                    ...
                    Quando estava fazendo a recompilação do "win32-g++" percebi que, nos fóruns, falava-se muito em colocar na instrução "configure" do "Qt 5.0.2 for Desktop (MinGW 4.7)" esse comando -> "-no-exceptions", porém a instrução não funcionava nele.

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      TioRoy
                      wrote on last edited by
                      #10

                      Bom, pelo erro e pelo tamanho do exe, não compilou estático como você mesmo viu.

                      Você consegue ver se no diretório do Qt que você compilou estático tem DLL's?
                      Quem colocou o Qt5 no PATH? Você tem o Qt5 (shared) instalado também?

                      Aqui em casa uso Linux.... mas no trabalho uso Windows 7 64bits.
                      Vou tentar reproduzir lá amanhã.

                      Mas quando você tem várias versões de Qt instaladas, acho melhor usar o QtCreator, que fica mais fácil de selecionar qual versão você quer usar.

                      1 Reply Last reply
                      0
                      • F Offline
                        F Offline
                        Filippe
                        wrote on last edited by
                        #11

                        bq. Você consegue ver se no diretório do Qt que você compilou estático tem DLL’s?

                        Não entendi muito bem a pergunta, mas para tentar esclarecer eu instalei o Qt no meu PC com esse executável:
                        "qt-windows-opensource-5.0.2-mingw47_32-x86-offline.exe"

                        Depois tentei fazer a compilação estática através do "Qt 5.0.2 for Desktop (MinGW 4.7)" (com os passos citados no dia 25 de julho)

                        bq. Quem colocou o Qt5 no PATH?

                        Fui eu, pois em alguns artigos diziam que o "Qt 5.0.2 for Desktop (MinGW 4.7)" precisava ter sua biblioteca no PATH para funcionar:
                        ...qt\5.0.2\mingw47_32\bin

                        bq. Você tem o Qt5 (shared) instalado também?

                        Como já deve ter notado, não conheço muita coisa do Qt. Esse "Qt5 (shared)" não sei se tenho instalado, pois não sei o que é.

                        1 Reply Last reply
                        0
                        • F Offline
                          F Offline
                          Filippe
                          wrote on last edited by
                          #12

                          Eu disse algo errado?
                          Ainda preciso de ajuda, pois meu problema não está resolvido.

                          Caso alguém já tenha feito funcionar o "Qt 5.0.2 MinGW" no "windows 7 64bits", preciso de ajuda.

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            TioRoy
                            wrote on last edited by
                            #13

                            Quando disse "Qt5 (Shared)" e pelo erro "está faltando Qt5Core.dll ", você tem as dll's Qt5 .

                            Quando você compila o Qt, você precisa rodar o qmake que você compilou primeiro, e depois o mingw32-make.

                            1 Reply Last reply
                            0
                            • F Offline
                              F Offline
                              Filippe
                              wrote on last edited by
                              #14

                              Não entendi muito bem em qual passo estou errado?

                              bq. 1 – Adicionei a configuração (-static -static-libgcc) na linha ‘QMAKE_LFLAGS = ‘ <QTDIR>\mkspecs\win32-g++\qmake.conf
                              2 – depois executei no Qt 5.0.2 for Desktop (MinGW 4.7)

                              configure -platform win32-g++ -static -release -nomake examples -nomake demos -no-vcproj -no-cetest -qt-sql-mysql -plugin-sql-mysql -no-opengl -no-openvg -no-incredibuild-xge
                              3 – prossegui com
                              mingw32-make sub-src
                              Não apareceu nenhum erro no processo.
                              4 – Criei um programa simples
                              5 – Adicionei o .pro
                              CONFIG += static
                              6 – Compilei com ‘release’.

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                TioRoy
                                wrote on last edited by
                                #15

                                No passo 6, você executa o qmake e depois o mingw32-make, certo?

                                Antes de executar o passo 6, rode:

                                @
                                qmake -v
                                @

                                e depois

                                @
                                qmake -query
                                @

                                Assim vamos ter certeza que você está usando o Qt que você compilou.

                                1 Reply Last reply
                                0
                                • F Offline
                                  F Offline
                                  Filippe
                                  wrote on last edited by
                                  #16

                                  Não, o passo 6 eu já estou com a compilação pronta e estou usando o Qt para compilar um programa teste.
                                  Acho que você quis dizer o passo 3, vou tentar com ele e dou o retorno.

                                  1 Reply Last reply
                                  0
                                  • F Offline
                                    F Offline
                                    Filippe
                                    wrote on last edited by
                                    #17

                                    Antes do passo 3:
                                    @
                                    D:\qt\5.0.2\Src\qtbase>qmake -v
                                    QMake version 3.0
                                    Using Qt version 5.0.2 in D:\qt\5.0.2\mingw47_32\lib@

                                    @D:\qt\5.0.2\Src\qtbase>qmake -query
                                    QT_SYSROOT:
                                    QT_INSTALL_PREFIX:D:\qt\5.0.2\mingw47_32
                                    QT_INSTALL_ARCHDATA:D:\qt\5.0.2\mingw47_32
                                    QT_INSTALL_DATA:D:\qt\5.0.2\mingw47_32
                                    QT_INSTALL_DOCS:D:\qt\5.0.2\mingw47_32\doc
                                    QT_INSTALL_HEADERS:D:\qt\5.0.2\mingw47_32\include
                                    QT_INSTALL_LIBS:D:\qt\5.0.2\mingw47_32\lib
                                    QT_INSTALL_LIBEXECS:D:\qt\5.0.2\mingw47_32\libexec
                                    QT_INSTALL_BINS:D:\qt\5.0.2\mingw47_32\bin
                                    QT_INSTALL_TESTS:D:\qt\5.0.2\mingw47_32\tests
                                    QT_INSTALL_PLUGINS:D:\qt\5.0.2\mingw47_32\plugins
                                    QT_INSTALL_IMPORTS:D:\qt\5.0.2\mingw47_32\imports
                                    QT_INSTALL_QML:D:\qt\5.0.2\mingw47_32\qml
                                    QT_INSTALL_TRANSLATIONS:D:\qt\5.0.2\mingw47_32\translations
                                    QT_INSTALL_CONFIGURATION:
                                    QT_INSTALL_EXAMPLES:D:\qt\5.0.2\mingw47_32\examples
                                    QT_INSTALL_DEMOS:D:\qt\5.0.2\mingw47_32\examples
                                    QT_HOST_PREFIX:D:\qt\5.0.2\mingw47_32
                                    QT_HOST_DATA:D:\qt\5.0.2\mingw47_32
                                    QT_HOST_BINS:D:\qt\5.0.2\mingw47_32\bin
                                    QMAKE_SPEC:win32-g++
                                    QMAKE_XSPEC:win32-g++
                                    QMAKE_VERSION:3.0
                                    QT_VERSION:5.0.2@

                                    Depois do passo 3:

                                    @D:\qt\5.0.2\Src\qtbase>qmake -v
                                    QMake version 3.0
                                    Using Qt version 5.0.2 in D:\qt\5.0.2\mingw47_32\lib@

                                    @D:\qt\5.0.2\Src\qtbase>qmake -query
                                    QT_SYSROOT:
                                    QT_INSTALL_PREFIX:D:\qt\5.0.2\mingw47_32
                                    QT_INSTALL_ARCHDATA:D:\qt\5.0.2\mingw47_32
                                    QT_INSTALL_DATA:D:\qt\5.0.2\mingw47_32
                                    QT_INSTALL_DOCS:D:\qt\5.0.2\mingw47_32\doc
                                    QT_INSTALL_HEADERS:D:\qt\5.0.2\mingw47_32\include
                                    QT_INSTALL_LIBS:D:\qt\5.0.2\mingw47_32\lib
                                    QT_INSTALL_LIBEXECS:D:\qt\5.0.2\mingw47_32\libexec
                                    QT_INSTALL_BINS:D:\qt\5.0.2\mingw47_32\bin
                                    QT_INSTALL_TESTS:D:\qt\5.0.2\mingw47_32\tests
                                    QT_INSTALL_PLUGINS:D:\qt\5.0.2\mingw47_32\plugins
                                    QT_INSTALL_IMPORTS:D:\qt\5.0.2\mingw47_32\imports
                                    QT_INSTALL_QML:D:\qt\5.0.2\mingw47_32\qml
                                    QT_INSTALL_TRANSLATIONS:D:\qt\5.0.2\mingw47_32\translations
                                    QT_INSTALL_CONFIGURATION:
                                    QT_INSTALL_EXAMPLES:D:\qt\5.0.2\mingw47_32\examples
                                    QT_INSTALL_DEMOS:D:\qt\5.0.2\mingw47_32\examples
                                    QT_HOST_PREFIX:D:\qt\5.0.2\mingw47_32
                                    QT_HOST_DATA:D:\qt\5.0.2\mingw47_32
                                    QT_HOST_BINS:D:\qt\5.0.2\mingw47_32\bin
                                    QMAKE_SPEC:win32-g++
                                    QMAKE_XSPEC:win32-g++
                                    QMAKE_VERSION:3.0
                                    QT_VERSION:5.0.2@

                                    1 Reply Last reply
                                    0
                                    • F Offline
                                      F Offline
                                      Filippe
                                      wrote on last edited by
                                      #18

                                      Não funcionou.

                                      1 Reply Last reply
                                      0
                                      • J Offline
                                        J Offline
                                        josuegomes
                                        wrote on last edited by
                                        #19

                                        bq. mas para tentar esclarecer eu instalei o Qt no meu PC com esse executável:
                                        “qt-windows-opensource-5.0.2-mingw47_32-x86-offline.exe”

                                        Estes pacotes não têm as bibliotecas estáticas. Você teria que compilar a Qt toda a partir do código fonte e gerar as suas próprias bibliotecas estáticas.

                                        1 Reply Last reply
                                        0
                                        • F Offline
                                          F Offline
                                          Filippe
                                          wrote on last edited by
                                          #20

                                          Ok, vou tentar compilar o Qt completo.

                                          Você sabe de algum tutorial que ensina a compilar o Qt 5.0.2 completo?

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved