Pular para o conteúdo principal

Cross-compile com Lazarus no Linux de maneira fácil

Este artigo descreve como realizar cross-compile de aplicações windows sobre a plataforma Linux de uma maneira mais simples.

Introdução

O Lazarus é um ambiente de desenvolvimento gráfico multi-plataforma que utiliza o compilador Free Pascal. Com ele é possível desenvolver aplicações de maneira muito semelhante ao Delphi. Na documentação wiki do Lazarus existe uma descrição (em inglês) de como realizar cross-compile de aplicações windows sobre a plataforma Linux. Porém, o principal objetivo deste artigo é descrever esta tarefa de uma maneira mais simples.

Instalação

Neste artigo serão utilizados Kurumin 6.1, Lazarus 0.9.20 e Freepascal 2.0.4, como será usado Kurumin ( que é um descendente do debian) baixei os pacotes para .deb no SourceForge, são eles:
fpc-crosswin32_2.0.4-060919_i386.deb
fp-compiler_2.0.4-1_i386.deb
fpc-src_2.0.4-1_i386.deb
fp-ide_2.0.4-1_i386.deb
fp-units-base_2.0.4-1_i386.deb
fp-units-db_2.0.4-1_i386.deb
fp-units-fcl_2.0.4-1_i386.deb
fp-units-fv_2.0.4-1_i386.deb
fp-units-gfx_2.0.4-1_i386.deb
fp-units-gnome1_2.0.4-1_i386.deb
fp-units-gtk_2.0.4-1_i386.deb
fp-units-gtk2_2.0.4-1_i386.deb
fp-units-misc_2.0.4-1_i386.deb
fp-units-net_2.0.4-1_i386.deb
fp-units-rtl_2.0.4-1_i386.deb
fp-utils_2.0.4-1_i386.deb
lazarus_0.9.20-0_i386.deb
Para instalar no Kurumin use o comando:
# dpkg -i *.deb
E para resolver as dependências use:
# apt-get -f install
Configuração
O pacote fpc-crosswin32_2.0.4-060919_i386.deb fornece os utilitários do binutils e as units do Freepascal já compilados para realizar o cross-compile. A única configuração necessário é no arquivo /etc/fpc.cfg. Localize as estas linhas no arquivo:
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl

E acrescente o seguinte:
#IFDEF win32
-XPfpc-i386-win32-
-FD~/usr/bin
#ENDIF
As units compiladas para o windows são instaladas no mesmo local das units do Linux, mas no subdiretório win32 que será igual a $fpctarget no momento da compilação. A configuração acrescentada no arquivo é para informar o prefixo do nome e o local onde estão os utilitários do binutils.

Fazendo o cross-compile

Para realizar o cross-compile, crie qualquer projeto no Lazarus e altere as configurações em Project > Compiler Options...
Na aba Paths altere LCL Widget Type para Win32
Na aba Code altere Target OS para Win32
Agora basta compilar o projeto e seu .exe será criado no Linux

Referências

Comentários

Postagens mais visitadas deste blog

Compartilhamento de scanner no Linux

Assim como uma impressora compartilhada é útil para que vários computadores possam enviar impressões remotamente um scanner compartilhado pode ser usado por outros computadores em uma rede. Neste artigo vamos descrever como compartilhar um scanner no Linux. Consideraremos um scanner já instalado e funcionando (muitos modelos de scanner são detectados automaticamente e nem precisam ser instalados). Utilizaremos a distribuição Debian, mas em outras distribuições o compartilhamento pode ser feito de maneira análoga. Inicialmente vamos mostrar como configurar o servidor. Configuração do Servidor No caso do debian é necessário que os pacotes xinetd e sane-utils estejam instalados. Podemos fazer isto com o aptitude : # aptitude install xinetd sane-utils Para listar o scanner instalado podemos usar o comando: scanimage -L O compartilhamento é feito com alguns arquivos de configuração. No arquivo /etc/services deve constar a seguinte linha: sane-port 6566/tcp ...

Referências Bibliográficas com ABNTeX e JabRef

É inevitável escrever textos técnicos e científicos sem referências bibliográficas. Quando escrevemos em LaTeX a maneira mais conveniente de trabalhar com referências é a criação de bancos de dados bibliográficos que são incorporados ao documento final com o utilitário BibTeX . Estes bancos de dados são arquivos texto que obedecem uma formatação e possuem extensão "bib" . Para facilitar o nosso trabalho e não termos que nos preocupar com a formatação do arquivo podem ser utilizadas ferramentas específicas para trabalhar com arquivos BibTeX. Nesta postagem vamos explicar como trabalhar com o JabRef , um excelente software livre multiplataforma para lidar com arquivos BibTeX para documentos que usam a classe abnTeX  (Classes LaTeX para as normas ABNT). Antes de criarmos um arquivo e incluir qualquer referência vamos verificar algumas configurações importantes. A primeira delas é definir a codificação padrão para os arquivos através do menu "Options / Preferences" ....

Particionamento com Parted Magic

Nesta postagem vou passar alguns conceitos básicos e dicas sobre particionamento. Introdução Primeiramente vamos começar pela dica mais importante sobre particionamento: Sempre faça cópia de segurança (backup) de seus dados antes de fazer qualquer alteração no particionamento de sua unidade de armazenamento! As unidades de armazenamento (disco rígido, pendrive ou cartão de memória) podem ser vistas como uma caixa com divisórias. Se não colocamos nenhuma divisória na caixa, esta apresenta um único compartimento. Se quisermos dois compartimentos na caixa, inserimos uma divisória na mesma dividindo-a em duas partes. Se queremos três compartimentos precisamos fazer duas divisões e assim por diante. Uma unidade de armazenamento funciona de forma semelhante a caixa descrita acima. O particionamento de uma unidade de armazenamento consiste em dividir a capacidade de armazenamento da mesma em várias partições (partes). Podemos criar partições na medida de nossas necessidades. Em mídias...