Pular para o conteúdo

Compilando Allegro no Linux

Dica publicada em C/C++ / Avançado
Ivan S. Rodrigues isrodrigues
Hits: 15.372 Categoria: C/C++ Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Prevenindo desligamento / reboot acidental (a famosa dedada)!

Porque fgets() ao invés de gets()

Imprimindo diretamente para porta paralela em C/C++ sem drivers

Livro "Advanced Linux Programming"

Conversão de tipos de dados em C/C++

Eclipse Plugin para C/C++

#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

Entre na sua conta para comentar.