Como instalar a Allegro ?(Resolvido)

Iniciado por solanoalves, 22 de Janeiro de 2007, 22:59

tópico anterior - próximo tópico

solanoalves

Simples a pergunta, como ?

Citar
solano@solano-sala:~$ sudo apt-get install allegro
Password:
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências       
Reading state information... Pronto
E: Impossível achar pacote allegro

Citar
solano@solano-sala:~$ sudo apt-get install allegro-dev
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências       
Reading state information... Pronto
E: Impossível achar pacote allegro-dev


Meu ubuntu é o 6.10

Darcamo

A resposta também é simples. Vai no synaptic e faz uma busca pelo nome por allegro.
Dos pacotes que aparecem instala o que tem "-dev" no nome. No caso é o pacote liballegro4.2-dev.

Você pode instalar outros se quiser como o pacote liballegro4.2-plugin-esd para dar suporte de saida de som para o esd com programas que usam allegro.

Lamego

Ou no terminal:
apt-cache search allegro
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

solanoalves

Fiz o que mandou e quando fui compilar com
Citargcc nome.c -o nome -lalleg
deu isso

Citar
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(xvtable.o): In function `_xwin_vline':
(.text+0x1d74): referência indefinida para `XSetForeground'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(xvtable.o): In function `_xwin_vline':
(.text+0x1d99): referência indefinida para `XDrawLine'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(xvtable.o): In function `_xwin_hline':
(.text+0x1f8b): referência indefinida para `XSetForeground'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(xvtable.o): In function `_xwin_hline':
(.text+0x1fa8): referência indefinida para `XDrawLine'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(xvtable.o): In function `_xwin_putpixel':
(.text+0x2151): referência indefinida para `XSetForeground'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(xvtable.o): In function `_xwin_putpixel':
(.text+0x2166): referência indefinida para `XDrawPoint'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/liballeg.a(digmid.o): In function `digmid_init':
(.text+0x1b21): referência indefinida para `pow'
collect2: ld returned 1 exit status
solano@solano-sala:~/prog$

coloquei alguns dos milhares de erros que apareceram

instalei tudo relacionado ao allegro na synaptic

Darcamo

Acontece que não é apenas com a allegro que vc precisa linkar. Existem outras bibliotecas com as quais vc também precisa linkar para compilar programas que utilizam allegro.
Para facilitar a sua vida, quando vc instalou a biblioteca allegro também foi instalado o programa allegro-config que é de grande ajuda.

Rodando em um terminal
allegro-config --libs
vai retornar uma linha com opções para linkagem que devem ser passadas para o gcc. Aqui na minha máquina ele retornou
-L/usr/lib -lalleg-4.2.0 -lm -lpthread -lXxf86vm -lXcursor -lXpm -lXext -lX11 -ldl
Mas pode ser que na sua máquina seja diferente. Perceba que ele vai linkar com várias bibliotecas além da allegro (o erro de referência indefinida para o comando "pow", por exemplo, corresponde a não ter achado a biblioteca matemática "m", que requer que vc passe a opção para o gcc "-lm").

A maneira mais prática é vc compilar seu programa é usando o comando
gcc nome.c -o nome `allegro-config --libs`
Assim a saída do comando "allegro-config --libs" será passada diretamente para o gcc e o programa deverá compilar numa boa.

Off-topic: ah um bom tempo atrais eu estava mexendo com allegro e na época eu estava lendo o livro "Game Programming All in One (Second Edition). Ele é muito bom e o autor utiliza a biblioteca allegro e fala bastante sobre ela. Ao longo do livro ele vai desenvolvendo um jogo chamado tank wars que é bem interessante e didático. A leitura vale a pena.

solanoalves