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

Tesseract OCR: obtendo textos a partir de imagens

Introdução Existem diversas ferramentas livre para Optical Character Recognition ( OCR - Reconhecimento ótico de caracteres ) como o gocr e o ocrad . Entretanto, eu ainda não tinha obtido uma eficiência tão boa até usar o Tesseract OCR . O Tesseract OCR foi desenvolvido em um laboratórios da Hewlett-Packard entre 1985 e 1995. Em 1995 era um dos 3 melhores na competição de exatidão de OCR's organizada pela Universidade de Nevada em Las Vegas (UNLV) . Entretanto, logo após isto, a HP decidiu sair do ramo de OCR e o Tesseract foi descontinuado. Felizmente a HP com a ajuda do Instituto de Pesquisas em Ciência da Informação da UNLV decidiu abrir o código fonte do Tesseract. Atualmente o Tesseract é mantido pela Google e já suporta vários idiomas, inclusive o português. Instalação no Debian Já existem pacotes nos repositórios do Debian para o Tesseract OCR e alguns idiomas, mas não consegui fazer com que eles funcionassem corretamente. Então eu baixei o código fonte, acrescen...

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