Compilando Allegro no Linux

Publicado por Ivan S. Rodrigues em 11/01/2011

[ Hits: 14.646 ]

 


Compilando Allegro no Linux



Caros colegas,

Migrando uma aplicação em C que utiliza a biblioteca Allegro do Windows para o Linux me deparei com uma grande diferença entre as duas plataformas.

A compilação, no Windows, muito provavelmente tu abre teu DevC++ adiciona aos parâmetros de compilação a entrada "-lalleg", aplica, tu manda compilar e... beleza foi pra conta do Papa.

Já no Linux, tu chega animadão, cheio de amor pra dar, manda seu "gcc -Wall <arquivo.c> -o programa -lalleg", e vem a decepção, um monte de referências indefinidas... recorremos ao guru Google e encontramos um monte de workarounds, pogs ou qualquer outro nome bonitinho e meigo pra boa e velha gambiarra, e todos eles tem em comum o comando `allegro-config --cflags` `allegro-config --libs` como parâmetros de compilação, alguns variam pra `allegro-config --cflags --libs`mas, em suma, tudo a mesma linda e elegante solução não documentada e engenhosa.

Não satisfeito, fui atrás, li, reli, rezei, fiz promessa, até que fui iluminado com a ideia a seguir, partindo do principio como as outras bibliotecas funcionam, e o resultado é o seguinte nobres colegas.

Como root ou sudo:

# cd /usr/lib
# ln -s liballeg-4.2.2.so liballeg.so

Pronto, teste agora com teu código fonte:

gcc -Wall <arquivo.c> -o programa -lalleg

... inacreditável, não? O famoso -lalleg funcionou.

Desde então durmo em paz comigo mesmo. Uma gambiarra a menos no mundo.

Outras dicas deste autor

Prevenindo desligamento / reboot acidental (a famosa dedada)!

Leitura recomendada

Migrando aplicativos C++ do Windows para Linux

Usando o realloc

Passar variáveis char para inteiro

Eclipse Plugin para C/C++

Compilando em um Cluster Linux

  

Comentários
[1] Comentário enviado por sombriks em 14/01/2011 - 00:16h

ei, bacana a dica!

Se você executar o "allegro-config --cflags --libs" sem as aspas, ele entrega o ouro: ele dá os caminhos onde o gcc deve esperar encontrar o allegro, e ele fina entre os apóstrofos pra fazer a saída do comando ser parte do outro.

Estes scripts *-config são clássicos do mundo gcc, existe inclusive o pkg-config que é um geralzão que unificou esses scripts todos, muitas bibliotecas tem ele.

Jogar no /usr/lib é jogar no caminho de busca padrão do ld, por isso fica limpa e elegante a linha de linkedição.

por fim, quero ver os exemplos rolando co m allegro, :D



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts