Erro cannot find -lX11 no Lazarus – Como resolver?

por Marcos Elias

Apesar de reclamar dele em diversos aspectos no estado em que se encontra, reconheço que o Lazarus é uma ferramenta de desenvolvimento promissora. No Windows ele permite usar conceitos do Delphi sem precisar pagar por isso, ao mesmo tempo que gera aplicações multiplataforma, onde o mesmo código pode ser compilado no Linux. Pascal pode ser considerado mais fácil de aprender do que C ou C++, e com a IDE do Lazarus melhor ainda (inspirada nas versões antigas do Delphi – por sinal as melhores, para muita gente! Quem curtia Delphi geralmente recusou a interface do “.net” estilo MS… Os pedidos foram tantos que a Embarcadero até recuou e liberou o visual antigo no Delphi 2010 :P).

O Lazarus está em desenvolvimento há um bom tempo, tem versões boas mas ainda falta muita coisa. Boa parte do trabalho atual é concentrado no uso de gtk2 no Linux (e também Qt4). Estou fazendo programas nele para uso próprio (um deles é um editor de texto com atalhos e funções que preciso no dia-a-dia). Irei abordar aqui no site algumas dicas e soluções de problemas que for encontrando, quem sabe ajude um pouco a comunidade brasileira de Lazarus a crescer :)

Bom, vamos lá… A primeira: um erro comum ao instalar no Linux:

/usr/bin/ld: cannot find -lX11
Error: Error while linking

Pode aparecer isso ao tentar compilar um programa (especialmente na primeira vez que usar o Lazarus numa distro recém instalada). É basicamente a falta do pacote libx11-dev.

Muitas distros em um CD não trazem pacotes “opcionais”, que um usuário comum nunca precisaria (não desenvolvedor). O Debian é um caso desses, onde o CD1 é basicão e não inclui muita coisa extra, nem mesmo o gcc. Por algum motivo (esquecimento, talvez?) ele não foi incluso nas dependências dos .deb do Lazarus, de forma que mesmo forçando o apt-get a corrigir os problemas encontrados, esse pacote fica faltando.

No caso do Debian (e derivados) o nome é esse mesmo, em outra distro pode ser que mude alguma coisa. Simplesmente dê apt-get install libx11-dev como root… E depois tente recompilar o programa. Aqui nem precisou reiniciar o Lazarus :)

Enfim, mais dicas virão em breve, aos poucos, a quem possa interessar. Se você gosta de Delphi, vale a pena conhecer o Lazarus, mesmo com todos os bugs atuais. Gosto de usar as versões mais recentes, mas isso não é regra, você pode instalar pelo gerenciador de pacotes da sua distro usando o repositório dela – vai pegar versões mais velhas, mas talvez funcionem melhor no seu sistema.

Aproveitando, uma outra dica boba é para ele parar de exibir o aviso que o programa foi fechado, ao encerrar o debug. Ele mostra isso numa janela de mensagem padrão do sistema, onde é necessário dar OK, desperdiçando um precioso tempo (durante o desenvolvimento é normal compilar, rodar, testar, fechar, alterar o código, compilar, rodar, testar, fechar… um montão de vezes).

Basta ir em Environment > Options, na seção Debugger desmarque o checkbox “Show message on stop”.

Nas versões futuras vai ter um botao extra na janela da mensagem, oferecendo a opção de desativar o aviso. Isso já está presente nas últimas compilações “dev”.

Depois falarei como instalar ele, abordando alguns poucos problemas comuns mais para iniciantes. As dicas de Lazarus aqui ficarão listadas em:
http://www.explorando.viamep.com/m/categoria/lazarus

comments powered by Disqus

Comentários arquivados

  1. Wagner Amenta escreveu

    Prezado Marcos, ainda rodo a distro do Kurumin 7, melhorada para o Leny, no entanto quando compilo algiuma coisa no Lazarus tenho um erro que informa o seguinte: Can”t find unit glib. e tudo empaca, já tntei de tudo e nada resolve, qual a dica?
    Desde já muito grato.
    Teu site é ótimo