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: 39.997 ]

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

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

Colocando aplicação Kylix no TrayIcon do KDE

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

Criando aplicação para detectar informações do sistema em Kylix

Criando uma aplicação que mostra os processos em execução

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts