Como preparar a compilação de um programa que utiliza Qt4

Publicado por Leandro Santiago em 18/11/2007

[ Hits: 8.092 ]

Blog: http://leandrosan.wordpress.com

 


Como preparar a compilação de um programa que utiliza Qt4



Para quem não sabe, Qt4 é a mais nova versão da Toolkit desenvolvida pela TrollTech, e é famosa por ser a base de um dos ambientes gráficos mais utilizado no mundo: o KDE.

Com o desenvolvimento da versão 4 desta biblioteca, muitos aplicativos livres e não livres estão sendo escritos ou reescritos para a utilizarem. Um bom exemplo é o próprio KDE.

Mas os aplicativos que utilizam a versão 3 desta toolkit ainda são muito numerosos. Isso não chega a ser exatamente um problema, já que as duas versões da biblioteca podem coexistir no mesmo sistema, mas podem ocorrer alguns problemas na hora da compilação de algum programa que utilize a versão 4.

Neste caso, o processo de compilação muitas vezes é diferente daquele que estamos acostumados.

Como exemplo, utilizarei o programa Zhu3D, que é capaz de gerar gráficos e animações baseados em equações matemáticas. Utiliza também OpenGL, portanto tenha certeza de ter esta biblioteca corretamente instalada.

O código-fonte pode ser encontrado nesta página:
E o link direto:
Vamos ao processo de compilação em si. Descompacte o arquivo:

$ tar zxvf 43071-zhu3d-3.1.0.tar.gz

Entre no diretório criado:

$ cd zhu3d-3.1.0/

Agora entra parte diferente. Tenha certeza de estar com o pacote qt4 corretamente instalado. No meu caso, ele está em /opt/qt4.

Programas que utilizam Qt sabem onde esta está baseado numa variável do ambiente chamada QTDIR. Normalmente ela indica onde está a versão 3 da mesma. Se você deixá-la como está, a instalação falhará, pois o compilador tentará utilizar a versão 3, incompatível com a 4.

Para resolver este problema, defina esta variável para indicar a versão 4:

$ export QTDIR=/opt/qt4

Adicione também o diretório com os utilitários na sua variável PATH:

$ export PATH=$QTDIR/bin:$PATH

É importante adicionar que este diretório esteja na frente dos outros, para que o compilador não tente utilizar a versão 3, o que acarretará em erros.

O seguinte passo é opcional. Se você tiver instalado a Qt4 na sua pasta pessoal, por falta de privilégios de administrador, adicione o diretório $QTDIR/lib na sua variável LD_LIBRARY_PATH:

$ export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

No meu caso, como a instalação foi feita como root, bastou adicionar o diretório $QTDIR/lib no final do arquivo /etc/ld.so.conf.

# echo /opt/qt4/lib >> /etc/ld.so.conf

Em seguida:

# ldconfig

Agora sim, vamos compilar ;-)

$ qmake

Será gerado então um arquivo Makefile, que contém os comandos para que a compilação aconteça.

Em seguida, compile com o conhecido make:

$ make

Se tudo ocorrer bem, será gerado um binário chamado zhu3d. Este é o programa compilado. Para executá-lo:

$ ./zhu3d

Uma screenshot do programa em funcionamento, sem qualquer conflito com os programas do KDE, em qt3:



Onde encontrar estes programas?

Eu recomendo os sites:
Links:
Este processo foi testado na distribuição Slackware 12 com a versão 4.3.1 da biblioteca.

Lembrando que há casos de programas que utilizam o processo usual de compilação, como ./configure && make, e outros que utilizam sistemas próprios. O processo descrito aqui é o "genérico", quando não for especificado outro método.

Até a próxima.

Outras dicas deste autor

Instalando programas no Linux sem ter poderes de root

Criando um planeta só seu.. no GIMP

Usando o Bootsplash ao contrário

Obtendo CDs do Ubuntu no Brasil

Ativando a correção ortográfica em português no KDE

Leitura recomendada

Instalando o Mercury Messenger na distribuição Debian Linux e derivados

Guia de Certificação Linux

Fedeasy - Script arredondador do Fedora

Como extrair o conteúdo de pacotes deb em qualquer distro

Repositório para E17 no Ubuntu

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts