Como programar para Windows no Ubuntu?

24

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 Windows?

Behzadsh
fonte
1
mingw é a escolha óbvia para compilação cruzada, mas não tenho idéia de como integrá-lo ao Anjunta. Eu vi um tutorial sobre a integração do mingw e do kdevelop aqui: forums.gentoo.org/viewtopic-t-292180.html talvez uma das pessoas que recomenda o mingw conhece uma integração com o tutorial do Anjunta?
RobotHumans

Respostas:

21

Você deseja fazer a compilação cruzada, que é uma maneira de compilar código para plataformas diferentes da sua, especialmente quando o processador é completamente diferente. Basicamente, você precisa instalar todos os cabeçalhos do seu destino (por exemplo, janelas) e depois informar ao compilador que está compilando de forma cruzada, para que não faça algumas 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 pergunta especificamente ou, se estiver fazendo c básico, poderá usar as ferramentas MinGW e o mesmo tipo de ferramentas de compilação baseadas em Linux que usam o gcc:

sudo apt-get install gcc-mingw32

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

Martin Owens -doctormo-
fonte
12

Você deve dar uma olhada no MingW . Ele fornece um compilador compatível com gcc para Windows.

Existe uma versão de plataforma cruzada que você pode usar no Linux para gerar binários do Windows. Você pode instalá-lo com synaptic ou executando:

sudo apt-get install gcc-mingw32

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

Qualquer IDE que permita usar o make e o gcc pode usar esse compilador. Por exemplo, veja como fazer isso no IDE Code :: Blocks .

Little Jawa
fonte
bom o suficiente para mim +1
RobotHumans 22/11
7

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

Para código C #, você pode simplesmente usar o Monodevelop Instale 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ção nas máquinas Windows, desde que você permaneça nas bibliotecas de classes .NET Base padrão ou agrupe qualquer biblioteca extra usada com seu aplicativo.

RAOF
fonte
5

Pode querer experimentar o Qt com o Qt Creator. Excelente estrutura para aplicação GUI e Console, você pode compilar para Windows, Linux e OS X.

http://qt.nokia.com/

SiliconChaos
fonte
2

A maneira mais comum de programar o Windows Application Linux (ubuntu) é usando as ferramentas mingw:

http://www.mingw.org/

Existem pacotes do ubuntu para o mingw prontos para instalar.

gracejo
fonte
2

A partir desta página :

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

Isso é tudo o que é necessário para a compilação cruzada 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

Então você pode iniciá-lo:

wine essai.exe

O texto da caixa de diálogo está no idioma francês com acento, para fazê-lo com o gvim, converta a fonte na página de códigos 1252 do Windows :<ESC>:e ++enc=cp1252

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

Aubin
fonte