Como executar um binário do Windows/DOS no Linux (Continuação do Post anterior sobre compilar binário de Windows, dentro do Linux)

Continuação do post:

Cross-Compiling de Arquivo em Linguagem C (Compilando em Linux, Executando em Windows)

Para testar seu binário de Windows, no próprio Linux, com se fosse um Windows…rss:) (Wine tá bugado na VM de testes).

[test@localhost sampler]$ wine cmd
fixme:winediag:start_process Wine Staging 1.7.49 is a testing version containing experimental patches.
fixme:winediag:start_process Please report bugs at http://bugs.wine-staging.com (instead of winehq.org).
Microsoft Windows 5.2.3790 (1.7.49)

Z:\home\test\sampler>fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
Z:\home\test\sampler>dir
Volume in drive Z has no label.
Volume Serial Number is 0000-0000

Directory of Z:\home\test\sampler

8/31/2015 1:49 PM <DIR> .
8/31/2015 1:45 PM <DIR> ..
8/31/2015 1:15 PM 103 HelloWorld.c
8/31/2015 1:27 PM 67,385 HelloWorld.exe
8/31/2015 10:19 AM 717 HelloWorldCPL.c
8/31/2015 1:35 PM 67,385 HelloWorldCPL01
8/31/2015 1:15 PM 103 HelloWorldCPL01.c
8/31/2015 1:35 PM 67,385 HelloWorldCPL01.cpl
6 files 203,078 bytes
2 directories 95,160,651,776 bytes free
Z:\home\test\sampler>HelloWorldHelloWorld.exe
Sampler Test!

Não adiantar usar comandos de Linux, agora você estará no Windows

Z:\home\test\sampler>clear
Can’t recognize ‘clear’ as an internal or external command, or batch script.

Z:\home\test\sampler>exit
[test@localhost sampler]$ clear

Espero ter ajudado!

@firebitsbr

Cross-Compiling de Arquivo em Linguagem C (Compilando em Linux, Executando em Windows)

Estava fazendo um PoC (Proof of Concept) e precisava criar um sampler para testes, mas não queria criar uma VM com Windows, instalar GCC ou VS, só para criar um PE32 (Executável para Windows 32bits, arquitetura x86), então fui pesquisar sobre MinGW.

O problema é que a máquina de testes do Lab está usando um Fedora 22 e quando você procura no terminal por “MinGW”, não aparece nada rapidamente.

Buscando nesta wiki, achei o MinGW versão Fedora, que está com outra nomeclatura no package:

https://fedoraproject.org/wiki/MinGW/Tutorial (x86_64-w64-mingw32-gcc)

[root@localhost sampler]# x86_64-w64-mingw32-gcc HelloWorld.c -o HelloWorld

HelloWorld

[root@localhost sampler]# file HelloWorld
HelloWorld: PE32+ executable (console) x86-64, for MS Windows

Agora sim!:)

Espero ter ajudado alguém!:)

@firebitsbr