Manual para cross-compilar um aplicativo C ++ do Linux para o Windows?
-
06-07-2019 - |
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.
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).
-
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 . -
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)