Mostrando postagens com marcador Lazarus. Mostrar todas as postagens
Mostrando postagens com marcador Lazarus. Mostrar todas as postagens

sábado, 15 de fevereiro de 2014

Mensagem de erro no Lazarus 1.0.10 ao iniciar (leakview.lpk)

Se você instalou o Ubuntu 13.10 e ao tentar executar o Lazarus 1.0.10 está recebendo uma mensagem de erro informando que o pacote leakview.lpk está inválido, a solução é simples, basta criar um arquivo chamado leakview.lpk no diretório /usr/lib/lazarus/1.0.10/components/leakview/leakview.lpk com o seguinte conteúdo:




Bom... consegui fazer funcionar assim neste momento, sábado de madrugada e depois de 1 caixa de gelada e algumas gramas de carne (não consegui comer 1Kg...), agora se você não sabe como criar o arquivo nesse diretório usando um gedit, pico, vi, etc... com o sudo.... tome uma caixa, quem sabe ela te ajuda... kkkkkkk


[]'s



sexta-feira, 25 de maio de 2012

Lazarus sem menu no Unity

Recentemente resolvi dar uma chance para o Unity e o instalei no lugar do KDE, estou gostando bastante, porém uma coisa me incomodou um pouco, foi o fato de que ao utilizar o Lazarus sempre que eu preciso selecionar algum item do menu principal dele eu preciso clicar sobre a janela principal do Lazarus, já que o menu no Unity fica sendo mostrado apenas o da janela ativa, caso contrário ele fica sem menu.

Para resolver isso é relativamente simples, basta iniciar o Lazarus com um shell script contendo o seguinte código no início:


export UBUNTU_MENUPROXY=

Então vamos lá... vou fazer um passo a passo dividido em 2 etapas.

ETAPA 1 - Criar shell script de atalho

1) Abra um editor de textos que não grave formatação no texto, pico, nano, gedit, etc...
2) Crie um novo arquivo com o seguinte conteúdo:

#!/bin/bash
export UBUNTU_MENUPROXY=
# o comando abaixo eh o executavel do Lazarus, veja se esse eh o seu caso tambem
startlazarus-0.9.30.2

3) Salve o arquivo na pasta /usr/bin com o nome de startLazarusMenu

4) Dê permissão de execução no arquivo criado, abra um terminal de comando e digite:
sudo chmod +x /usr/bin/startLazarusMenu

Neste ponto você pode testar se realmente funciona tudo que foi feito, para fazer um teste, ainda no terminal de comando digite:

startLazarusMenu


Se tudo ocorreu como planejado o Lazarus deve ter sido executado com o menu principal fixado na janela principal e não mais no menu padrão do Unity.

Agora vem a segunda etapa, adicionar um atalho no Unity para esse shell script que criamos. Como não sou usuário antigo do Unity pode ser que essa segunda etapa exista uma forma mais fácil de fazer do que a que eu proponho aqui, mas dessa forma funcionou pra mim e como não estou com vontade de garimpar soluções no Google deixei assim mesmo. Claro, existe a opção de você teclar ALT+F2, digitar startLazarusMenu e executar sempre por essa opção, se você estiver satisfeito assim pare por aqui.


ETAPA 2 - Criar atalho no Dash

1) Abra um terminal de comando e digite:
cd ~/.local/share/applications/
cp lazarus-0.9.30.2.desktop lazarusMenu.desktop

2) Edite com um editor de textos que não grave formatação o arquivo criado no passo anterior (~/.local/share/applications/lazarusMenu.desktop) e altere a linha onde esta o comando de execução do Lazarus, altere de:

Exec=startlazarus-0.9.30.2 %f

Para:

Exec=startLazarusMenu

Feito isso você pode acessar o Dash e digitar Lazarus, como resultado da pesquisa provavelmente vai aparecer os links para acessá-lo, entre eles o que acabamos de criar, arraste-o para a barra de atalhos e seja feliz.

T+

quinta-feira, 20 de outubro de 2011

Lazarus crosscompiler Linux -> Windows (can't find unit system)

Ao tentar compilar um programa para a plataforma Windows você recebe a mensagem abaixo?

Can't find unit system used by...


Continua com o problema mesmo depois de ter seguido a dica abaixo?


Compilando um programa para windows no Linux

O problema ocorre porque no Free Pascal Compiler deve existir uma versão de cada unit compilada para cada sistema operacional de destino que será utilizado, no meu caso até existe mas na versão do FPC diferente da que eu uso no Linux e por isso no momento da compilação o Lazarus acaba buscando no path errado essas units, a única forma que eu consegui contornar o problema sem muito esforço foi alterando o path diretamente no arquivo de configurações do FPC, mas faço isso apenas no caso do Windows. Veja abaixo como contornar o problema.

1) Edite o arquivo /etc/fpc.cfg (você vai precisar editar com um editor de textos da sua preferência e com privilégios de super usuário, o sudo).

2) Procure pelo texto searchpath, você deve encontrar algo parecido com isso:

# searchpath for units and other system dependent things
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/

Perceba que o que deve estar errado é justamente a variável $fpcversion, no meu caso ao tentar compilar para Windows o Lazarus está usando a última versão que eu tenho, que é a 2.4.4 e as minhas units estão compiladas apenas para a versão 2.4.2, como eu sei disso? Simples, verifique o seu diretório /usr/lib/fpc e veja as versões que você tem disponíveis, no meu caso aparecem 2 diretórios, veja abaixo:

je@je:/usr/lib/fpc$ ls -l
total 8
drwxr-xr-x 3 root root 4096 2011-10-17 16:40 2.4.2
drwxr-xr-x 6 root root 4096 2011-10-17 16:41 2.4.4

E se eu tentar localizar a unit compilada system.ppu veja o que aparece:

je@je:/usr/lib/fpc$ locate system.ppu
/usr/lib/fpc/2.4.2/units/i386-win32/rtl/system.ppu
/usr/lib/fpc/2.4.4/units/i386-linux/rtl/system.ppu

Ou seja, a minha system.ppu (e muito provavelmente todas as outras) está compilada para Win32 no FPC 2.4.2 e no FPC para Linux na 2.4.4.

Agora que já deu pra identificar bem o problema a solução é bem simples.

3) No arquivo /etc/fpc.cfg que você já abriu e encontrou o searchpath, faça a seguinte alteração, substitua todo aquele texto mostrado no passo 2 pelo seguinte:

# searchpath for units and other system dependent things
#IFDEF win32
-Fu/usr/lib/fpc/2.4.2/units/$fpctarget
-Fu/usr/lib/fpc/2.4.2/units/$fpctarget/*
-Fu/usr/lib/fpc/2.4.2/units/$fpctarget/rtl
-XPfpc-i386-win32-
-FD/usr/bin
#ELSE linux
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/
#ENDIF

Note que o que eu fiz foi apenas uma seleção, ou seja, caso esteja sendo compilado para Win32 a versão do FPC utilizada será a 2.4.2 (hardcode) e caso esteja sendo compilado para Linux vai pegar automaticamente a última versão instalada através da variável $fpcversion.

É isso, agora se você ainda estava com o Lazarus aberto, feche e abra novamente para que ele carregue essas configurações na sua inicialização.

Creio que existem outras formas para resolver o problema e a mais correta seria recompilar as units para a última versão do FPC, mas essa creio que seja a mais rápida de resolver o problema e sem muita dor de cabeça.

sábado, 27 de agosto de 2011

Compilando um programa para Windows no Linux

Estou usando Linux desde 2006, mas sempre existe alguns projetos em que não se pode fugir do Windows e pra isso eu sempre dependia de uma máquina virtual pra poder desenvolver, o que requer muito processamento e consequentemente uma máquina boa, ou depender do micro dos outros já que eu não cai na história de instalar o Linux em dual boot, se eu tivesse feito isso provavelmente até hoje eu estaria escolhendo entre um ou outro na hora do boot...

Bom, durante os meus muitos anos de usuário do Windows, a minha ide padrão foi o Delphi, então não foi por acaso que acabei caindo no Lazarus, a compatibilidade é grande mas não é 100%, não espere pegar um projeto grande feito em Delphi e migra-lo para o Lazarus sem ter problemas, mas a história do post não é bem essa, o que eu pretendia fazer e consegui é criar um novo projeto na minha máquina Linux e compilar o código gerando binários para o próprio Linux e para o Windows.

Então vamos aos pré-requisitos que já devem estar instalados:
1) Sistema Linux (dããhhh), atualmente estou usando o Kubuntu 11.04
2) Lazarus v0.9.30
3) FPC 2.4.2
4) FPC CROSSWIN32 2.4.2

Você pode baixar os arquivos de instalação aqui.

Faça a instalação dos pacotes baixados, se você não sabe como, faça uma busca no Mr.Google que você vai encontrar vários links ensinando como fazer.

Depois de tudo instalado, abra um terminal e acesse o diretório de instalação do Free Pascal Compiler, por default é o /usr/lib/fpc/2.4.2 e digite o comando abaixo:

sudo make OS_TARGET=win32

Feito isso agora basta criar o seu projeto normalmente no Lazarus e selecionar o sistema operacional de destino que deverá compilar para criar o binário.

As telas a seguir mostram as opções:

1) Selecione Project -> Project Options...
Nesta tela escolha em 'Compiler Options' o sistema operacional na opção 'LCL Widget Type (various)'


2) Ainda nesta tela agora escolha em 'Code generation' o sistema operacional na opção 'Target OS (-T)'


Clique no botão Ok e acesse a opção do menu principal 'Run->Build', se você fez tudo certo será criado um arquivo .exe com o nome do seu projeto no diretório onde o projeto foi salvo.

É só isso!!!