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

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

Scheduled Pinned Locked Moved Portuguese
32 Posts 5 Posters 21.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