Cross-compile Lazarus: Gerando executáveis Win32 estando no Linux

Cross-compile Lazarus, um howto de como compilar software win32 estado no Lazarus for Linux.

[ Hits: 41.161 ]

Por: Francis David em 23/04/2007 | Blog: http://blog.fdavid.com.br


Fazendo download, instalação e configuração



Primeiramente você deve ter o Lazarus devidamente instalado, aqui no Viva o Linux você encontrar diversos artigos focando a instalação do Lazarus.

Eu como bom Slackuser já fui nos fontes, na edição deste artigo estamos na versão recém lançada do Lazarus 0.9.22 e FPC 2.0.4.

No link você encontra os requisitos mínimos para funcionamento:
Depois do Lazarus devidamente instalado, configurado e funcionando no seu Linux, passamos a nos preocupar com o cross-compile.

Faça download do FPC-CrossCompile no mesmo link.

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 softwares 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ções 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 editá-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


Lembre-se de ajustar os paths, se instalou pelos RPMs substitua /usr/local por /usr.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Fazendo download, instalação e configuração
   3. CrossCompile finalmente
Outros artigos deste autor

Dicionário no Firefox

Interbase 6 no Slackware

Leitura recomendada

Capturando seu desktop com uma aplicação feita em kylix

TCollection e Generics no Free Pascal - Uma breve visão sobre lista de objetos com o Lazarus

Integrando saídas de comandos shell com sua aplicação Kylix

Aprendendo a modelar forms no Kylix

Como fazer seu programa Kylix chamar uma aplicação externa

  
Comentários
[1] Comentário enviado por fdavid em 23/04/2007 - 07:37h

Ao leitores...
No artigo esta faltando uma recompilação no Lazarus, material atualizado em meu blog (http://fdavid.com.br/blog/?p=4)

[2] Comentário enviado por chaplinux em 23/04/2007 - 14:00h

Blz... uns 2 anos atraz estava testando o Lazarus... mais havia muitos bugs, e me matou na questão de contrução de Relatório em ambiente grafico, tipo QuikReport, Rave, FortesReport e etc..., pois o negocio era na mão mesmo... ai me matou. abandonei por enquanto... vc tem alguma dica?

[3] Comentário enviado por fdavid em 23/04/2007 - 22:16h

chaplinux....
eu ainda estou fazendo relatorios artesanais, mas já usei o reportman com o Kylix e gostei, me parece que ele esta sendo pordado pra Lazarus.

IMs disponiveis em meu blog e site

[4] Comentário enviado por aprendiz_ce em 24/04/2007 - 13:46h

knancys,

Qual o procedimento para instalação do LAZARUS no Debian SARGE? Já tentei de tudo, mas não obtiver sucesso.

Obrigado e aguardo retorno.

[5] Comentário enviado por Djoni em 05/07/2007 - 18:01h

olá!

trabalho com desenvolvimento de software, e fiquei muito interessado ao saber que posso desenvolver em linux programas que rodem no windows.

segui os passos instalei o lazarus, e compilei um programa com um botao.

depois de resolver problema com a unit interfaces funcionou blz.

agora mudei as configurações em Project / Compiler Options para win32.

agora quando tento compilar o mesmo projeto aparece a seguinte menssagem:

/usr/share/lazarus/lcl/lclstrconsts.pas(296) Error: Writing Resource String Table file: /usr/share/lazarus/lcl/lclstrconsts.rst

por favor, presciso de ajuda pra abandonar definitivamente o windows.

fazendo funcionar isso aí windows só na maquina virtual pra testar os aplicarivos.

abraço.

[6] Comentário enviado por oespiao em 02/04/2009 - 14:47h

Ola David.. blz..
Amigo.. eu fiz a instalação do lazarus utilizando o apoio de um artigo do VOL, resumindo, converti todos os rpm para tgz e instalou legal. Compilo pra linux numa blz, entao ao ler seu artigo fui direto a parte da alteração do fpc.cfg, pois ja tenho instalado o crosswin.
bom ao compilar uma aplicação com as alterações sugeridas, 1 ocorreu o erro:
testelazarusproj.lpr(8,17) Fatal: Can’t find unit Interfaces used by TesteLazarusProj
fiz uma monte de coisa aki q nem sei direito agora o erro mudou para:
testelazarusproj.lpr(8,17) Fatal: Can’t find unit Forms used by TesteLazarusProj

Será que poderia me dar uma dica do eu poderia esta fazendo…
Desde Já obrigado.


Contribuir com comentário