Pergunta

Existe um manual para a compilação cruzada um aplicativo C ++ do Linux para o Windows?

Apenas isso. Gostaria de algumas informações (links, de referência, exemplos ...) para me guiar para fazer isso.

Eu não sei mesmo se é possível.

Meu objetivo é compilar um programa em Linux e obter um arquivo .exe que pode ser executado em Windows.

Foi útil?

Solução

Os princípios não são muito difíceis:

sudo apt-get install mingw32    
cat > main.c <<EOF
int main()
{
  printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe

Substituir apt-get com yum, ou qualquer que seja a sua distro linux usos. Isso irá gerar uma hello.exe para Windows.

Uma vez que você colocar sua cabeça em torno disso, você poderia usar autotools e conjunto de CC=i586-mingw32msvc-cc

CC=i586-mingw32msvc-cc ./configure && make

Ou use CMake e uma arquivo toolchain para gerenciar a construção. Mais difícil ainda é a adição de bibliotecas cruzadas nativas. Normalmente, eles são armazenados em /usr/cross/i586-mingw32msvc/{include,lib} e você precisa adicionar esses caminhos em separado no passo de configuração do processo de construção.

Outras dicas

Depende do que você quer dizer (eu não podia realmente dizer).

  1. Se você quer dizer que você deseja usar um aplicativo Linux existente no Windows, então você pode tentar compilá-lo usando Cygwin no Windows. Este, porém, não lhe dá um executável do Windows livre de todas as dependências em relação Cygwin (o seu ainda executável depende do arquivo cygwin.dll) - e ainda pode precisar de alguma portabilidade antes que ele irá trabalhar. Consulte http://www.cygwin.com .

  2. Se você quer dizer que você quer ser capaz de realizar a compilação real de um aplicativo do Windows no Linux e produzir um arquivo .exe que é executável em Windows - usando assim a sua caixa de Linux para o desenvolvimento e / ou compilação, em seguida, você deve olhar para MinGW para Linux, que é uma ferramenta para crosscompiling para Windows em Linux. Consulte http://www.mingw.org/wiki/LinuxCrossMinGW .

Com os melhores cumprimentos!

Eu sugiro que você dê o seguinte, GUB (Grande Unificado Builder) uma tentativa, uma vez que cruzar-compila vários pacotes com suas dependências e monta-los em um único pacote de instalação para atualmente 11 arquiteturas. Você pode baixar uma iso pré-construídos para instalação em uma máquina virtual a partir de aqui e siga a fonte aqui . Ele atualmente pode ser usado para cruzar-compilação GNU LilyPond / GNU Denemo / Inkscape e OpenOffice.org.

As arquiteturas-alvo são:

  • darwin-ppc - arquivo tar.bz2 para Darwin 7 (MacOS 10.3) / PowerPC
  • darwin-x86 - arquivo tar.bz2 para Darwin 8 (MacOS 10.4) / x86
  • mingw - mingw executável para Windows32
  • linux-x86 - arquivo shar para Linux / x86
  • linux-64 - arquivo shar para Linux / x86_64
  • linux-ppc - arquivo shar para Linux / PowerPC
  • FreeBSD-x86 - arquivo shar para FreeBSD 4 / x86
  • FreeBSD-64 - arquivo shar para FreeBSD 6 / x86_64
  • cygwin - pacotes .tar.bz2 para Cygwin / Windows32
  • braço - arquivo shar para Linux / ARM (praticamente não testado)
  • debian - arquivo shar para o Debian (praticamente não testado)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top