x:\caminhoparaupx\upx.exe nomedoarquivo.exe
Voce pode baixar o aplicativo em:
http://upx.sourceforge.net/
Instalação e configuração
O processo é bem simples, se fez download e instalação dos RPM, é só fazer o mesmo com o FPC-CrossCompile.
Mas se como eu preferiu descompactar os RPMs e instalar manualmente os software devem estar em:
- Lazarus /usr/local/lazarus
- FPC /usr/local/lib/fpc
- FPC SRC /usr/local/src/fpc
Descompactando o RPM do FPC-CrossCompile será criado um diretório chamado usr no diretório local, agora vamos copiar algumas coisas:
# cp -a ./usr/lib/fpc/2.0.4/units/i386_win32 /usr/local/lib/fpc/2.0.4/units # cp ./usr/bin/* /usr/local/bin |
Preste muita atenção, estamos copiando do {DIR ATUAL}/usr que surgiu ao descompactar o RPM do FPC-CrossCompile.
Precisamos agora editar o arquivo /etc/fpc.cfg, ele contém informaçõs usadas pelo Lazarus para encontrar as units entre outras coisas.
Parte do /etc/fpc.cfg (atual)
# searchpath for units and other system dependent things -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/* -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl #-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/ |
Vamos edita-lo para que fique da seguinte forma:
# searchpath for units and other system dependent things #IFDEF win32 -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/* -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl -XPfpc-i386-win32- -FD/usr/local/bin #ELSE linux -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/* -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl #-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/ #ENDIF |
FPC configurado, agora falta dar uma atenção ao Lazarus, precisamos recompilar as units para que tenhamos suporte a win32.
Digite:
# cd /usr/local/lazarus/lcl # make clean # make all OS_TARGET=win32
# cd /usr/local/lazarus/ # make clean # make all OS_TARGET=win32 |
Lembre-se de ajustar os paths, se instalou pelos RPMs substitua /usr/local por /usr.
CrossCompile finalmente
No Lazarus para configurar entre compilar Win32 ou Linux é muito facil e rápido, basta acessar o menu Project >> Compiler Options
Na aba Path em LCL Widget Type selecionar win32
Na aba Code em OS Target selecionar Win32.
Pronto, agora basta compilar, será gerado um .EXE que pode ser executado sem problemas no Windows, se for inteligente já deve ter um QEMU ou vmplayer rodando para nunca mais ter que usar Dual-Boot.
Conclusão
“Seu problemas acabaram” Sr. Cleison
Neste artigo foi abordado Cross-compile Windows sobre o Linux mas também pode ser feito MacOS, Darwin, Solares, etc sobre Linux, batando somente obter os pacotes, link-editores necessários para outras plataformas.
Quem usa Lazarus for Windows já sabe que a compilação é muito lenta, isso se deve ao linkador inteligente for Windows e se você desativar, o executável fica maior do que já é, problema que é resolvido com o Cross-compile.
Autor Francis David Donato Pereira
http://blog.fdavid.com.br