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

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" .

Criando Documentos com Códigos Fontes Coloridos

Muitas vezes precisamos inserir códigos fontes em documentos e desejamos que estes fiquem coloridos de acordo com a sintaxe da linguagem. A maioria dos editores de código fonte já realizam a coloração do código, o problema e exportar esta coloração para um editor como o LibreOffice Writer . Uma alternativa para exportar códigos coloridos é usar o SciTE . Basicamente é preciso fazer os seguintes passos: Abrir o arquivo no SciTE (o editor colore o código automaticamente); Escolher a codificação adequada no menu File > Encoding (veja se os caracteres acentuados aparecem corretamente); Exportar o arquivo para HTML no meno File > Export > As HTML... Agora é só abrir o arquivo HTML no LibreOffice Writer que o código vai estar colorido.