Construindo um executável do windows em qt em um sistema Linux

4

Eu tenho tido o pior tempo tentando compilar um arquivo .pro no Linux para fazer um executável do windows. Eu li todos os links do mundo usando o mingw e nada funcionou ainda. Há algo que estou perdendo ou alguém tem um bom passo a passo sobre como fazer isso?

Ubuntu 14.04.2 QT 4.8

    
por Sagebrushwilly 04.08.2015 / 00:11

1 resposta

7

Para QT4

As etapas a seguir são tiradas de uma resposta em uma postagem em

Use o M cross environment (MXE) . Isso tira a dor de todo o processo:

  1. Veja:

    git clone https://github.com/mxe/mxe.git
    
  2. Instale dependências de compilação

  3. Construa o Qt para Windows, suas dependências e as ferramentas de construção cruzada; isso levará cerca de uma hora em uma máquina rápida com acesso decente à Internet; o download é de cerca de 500MB:

    cd mxe && make qt
    
  4. Vá para o diretório do seu aplicativo e adicione as ferramentas de construção cruzada à variável de ambiente PATH:

    export PATH=<mxe root>/usr/bin:$PATH
    

    Execute a ferramenta geradora do Qt Makefile e crie:

    <mxe root>/usr/i686-pc-mingw32/qt/bin/qmake && make
    
  5. Você deve encontrar o binário no diretório ./release:

    wine release/foo.exe
    

Algumas notas:

Use a ramificação principal do repositório MXE; parece ter muito mais amor da equipe de desenvolvimento.

A saída é um binário estático de 32 bits, que funcionará bem no Windows de 64 bits.

Para o QT5

As etapas a seguir foram tiradas de uma resposta em uma postagem em estouro de pilha , para construir com qt5 se funcionar, certifique-se de dar a eles um upvote.

Aqui estão as instruções completas:

  1. Veja:

    git clone https://github.com/mxe/mxe.git
    
  2. Instale dependências de compilação

  3. Compile o Qt 5 para Windows:

    cd mxe && make qtbase
    

    Isso primeiro construirá suas dependências e as ferramentas de construção cruzada; Deve demorar menos de uma hora em uma máquina rápida com acesso decente à Internet.

    Devido à nova natureza modular do Qt 5, vários componentes principais do Qt estão agora em tarballs diferentes. Aquele selecionado acima, qtbase, deve dar a você funcionalidade suficiente para executar aplicativos GUI comuns, o que é tudo que eu preciso para o meu próprio aplicativo (pequeno).

    Se você quiser construir todo o Qt 5, você precisará rodar make qt5 (ao invés de make qtbase). Note que levará muito mais tempo para ser concluído, portanto, certifique-se de que você precisa da funcionalidade extra.

  4. Entre no diretório do seu aplicativo e execute a ferramenta geradora do Qt Makefile:

    <mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
    
  5. Crie seu projeto:

    make
    
  6. Você deve encontrar o binário no diretório ./release:

    wine release/foo.exe
    

Algumas notas:

Isso foi testado no Debian 8 de 64 bits, e no Windows, claro.

A saída é um executável estático de 32 bits, que funcionará bem no Windows de 64 bits.

Se você deseja um executável de 64 bits, construa o Qt com:

make MXE_TARGETS=x86_64-w64-mingw32.static qtbase

O valor padrão de MXE_TARGETS é i686-w64-mingw32.static.

    
por Mark Kirby 04.08.2015 / 09:11