Como programar para o Windows no Ubuntu?

23

Existe alguma maneira de criar aplicativos de console do Windows (C ++ ou C #) dentro do IDE do Ubuntu (por exemplo, Anjuta) e compilá-lo para o Windows?

    
por Behzadsh 22.11.2010 / 21:13

6 respostas

19

Você quer fazer compilação cruzada, que é uma forma de compilar o código para plataformas diferentes da sua, especialmente quando o processador é completamente diferente. Basicamente, você precisa instalar todos os cabeçalhos para o seu alvo (por exemplo, windows) e então dizer ao compilador que ele está compilando de modo que ele não faça algumas das verificações do sistema e, em vez disso, aponte para diretórios não padrão.

Dependendo do idioma, você pode achar útil fazer uma pesquisa ou uma pergunta específica, ou se estiver fazendo o básico, você pode usar MinGW ferramentas e o mesmo tipo de ferramentas de compilação baseadas em linux que usam o gcc:

sudo apt-get install gcc-mingw32

Existe um bom guia para a compilação cruzada do qt / win32 usando ferramentas MinGW .

    
por Martin Owens -doctormo- 22.11.2010 / 21:22
11

Você deve dar uma olhada em MingW . Ele fornece um compilador compatível com o gcc para windows.

Há uma versão multiplataforma que você pode usar do Linux para gerar binários do Windows. Você pode instalá-lo com o synaptic ou executando:

sudo apt-get install gcc-mingw32

Com base nisso, e com o uso do comando usual 'make', você pode criar programas para o Windows.

Em seguida, qualquer IDE que permita usar o make e o gcc pode usar esse compilador.  Por exemplo, aqui está como fazer isso no IDE Code :: Blocks .

    
por Little Jawa 22.11.2010 / 21:23
7

As outras respostas estão corretas para o código C / C ++; você precisará obter um compilador cruzado.

Para o código C #, você pode simplesmente usar o Monodevelop , pois o compilador do Mono produz o mesmo tipo de bytecode e formato executável que o compilador .NET (e vice-versa). Os aplicativos criados com o Mono serão executados sem modificações nas máquinas Windows, contanto que você permaneça dentro das bibliotecas de classes básicas do .NET ou inclua qualquer biblioteca extra que você usar com o aplicativo.

    
por RAOF 22.11.2010 / 23:33
5

Pode querer experimentar o Qt with Qt Creator. Ótimo framework para aplicação GUI e Console você pode compilar para Windows, Linux e OS X.

link

    
por SiliconChaos 23.11.2010 / 10:27
2

A maneira mais comum de programar o windows application linux (ubuntu) é usando as ferramentas mingw:

link

Existem pacotes do Ubuntu para o Mingw prontos para instalação.

    
por joke 22.11.2010 / 21:24
1

De esta página :

sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime

Isso é tudo o que é necessário para a compilação básica. Vamos tentar:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
  MessageBox(NULL,
    "Cette fenêtre prouve que le cross-compilateur est fonctionnel !",
    "Hello World", MB_OK);
  return 0;
}

Compile isso usando:

i586-mingw32msvc-g++ -o essai.exe essai.cpp

Para executar, você precisa da biblioteca mingw: mingwm10.dll:

gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll

Depois, você pode iniciá-lo:

wine essai.exe

O texto da caixa de diálogo está em francês com um acento, para fazer com gvim, converter a fonte para página de código do windows 1252 : <ESC>:e ++enc=cp1252

Outra solução, mais poderosa, é usar o UTF-8, mas isso requer mudar a maneira como as strings são manipuladas.

    
por Aubin 03.12.2015 / 08:43