Out-of-series #3 – Configurando a biblioteca Allegro no Code::Blocks (Ubuntu)

Padrão

Aow povo! Olha eu aqui de novo. Na verdade antes do que eu planejava, mas é por um post Out-of-Series, quase de utilidade pública.

Comecei a mexer com a biblioteca Allegro em 2008, quando eu estava no primeiro ano da faculdade. Conheci a biblioteca através de um mini-curso ministrado pelo Tulio Faria. Na época eu estava iniciando na programação, começando a mexer com a Linguagem C. Foi nesse ano que eu e minha e equipe fizemos o jogo Deviner (que pode ser visto na seção de projetos, ali em cima), utilizando a Allegro. Na busca por fazer o projeto da melhor maneira possível, alguns dos objetivos não foram atingidos, como utilizar imagens JPG, sons no formato MP3 e utilizar a biblioteca Allegro no Linux.

No ano passado, ao ministrar o curso da biblioteca, consegui utilizar com sucesso os formatos JPG e MP3 em projetos com a biblioteca Allegro (oh, linker…). Mas neste post vou mostrar como colocar pra rodar a biblioteca Allegro no Ubuntu, utilizando a IDE Code::Blocks. Apesar de alguns entusiastas do Linux pregarem a programação sem o uso de IDEs (em casos extremos usando apenas o VI…), elas auxiliam muito no gerenciamento de um projeto, mesmo que de pequeno porte (que é o caso das primeiras aplicações em Allegro).

Então, vamos começar o tutorial. Primeiramente devemos verificar se o compilador GCC está instalado no computador. O Ubuntu, na instalação padrão, o remove do sistema (não sei por que…). Mas podemos facilmente instalá-lo. Abra o Console ou Terminal e digite:

sudo apt-get install build-essential

Confirme o pedido para baixar os pacotes e aguarde a instalação. Após isso, já devemos ter o compilador funcionando.

O próximo passo é instalar o Code::Blocks. Existem duas opções para isso. A primeira é utilizar um gerenciador de pacotes, como o próprio apt-get, ou se você está iniciando no mundo Linux, pela interface gráfica, através do menu Aplicativos -> Central de Programas Ubuntu ou alguma coisa parecida (o nome muda um pouco dependendo da versão do Ubuntu). Se optar pelo apt-get, use o seguinte comando:

sudo apt-get install libwxgtk2.8-0 libcodeblocks0 codeblocks libwxsmithlib0 codeblocks-contrib

Caso utilize a Central de Programas, procure por IDE Codeblocks. A segunda opção é baixar o arquivo já compilado para o Ubuntu no próprio site do Code::Blocks. Procure na seção de downloads e efetue o download. Após concluído, dê um duplo clique no arquivo .deb. A instalação deverá ocorrer sem maiores problemas.

O próximo passo é baixar os pacotes da biblioteca Allegro. Vá até o Terminal e digite:

sudo apt-get install liballegro4.2 liballegro4.2-dev liballegro-doc

Após a instalação, já teremos tudo o que precisamos. Falta somente configurar a biblioteca dentro da IDE.

Abra o Code::Blocks e crie um novo projeto vazio (Empty Project). Configure um nome qualquer e onde o mesmo será salvo. Deixe o compilador como GCC mesmo. (clique nas imagens para ampliar)

Prosseguindo, vamos adicionar um novo arquivo ao projeto. File -> New -> File…, selecione a linguagem como C, escolha o local onde salvá-lo (normalmente a mesma pasta onde você salvou o projeto) com o nome main.c e selecione as opções Debug e Release, para adicionar o arquivo ao projeto atual.

Agora iremos configurar o compilador e o linker para reconhecerem a biblioteca Allegro. Ainda com o Code::Blocks aberto, abra o Terminal e digite os seguintes comandos:

allegro-config –libs

allegro-config –cflags

Voltando ao Code::Blocks, vá em Settings -> Compiler and Debugger… Na aba principal Compiler settings, aba secundária Other options cole o conteúdo retornado pela chamada a allegro-config –cflags.

Agora, vá até a aba principal Linker settings e adicione o conteúdo retornado pela chamada a allegro-config –libs ao campo Other linker options.

Pronto! Agora vamos testar se tudo está funcionando corretamente. Digite o seguinte código no arquivo main.c:

#include <allegro.h>

int main(void)
{
   allegro_init();
   allegro_message("striker07.wordpress.com");
   allegro_exit();

   return 0;
}
END_OF_MAIN()

Dê um F9 para rodar e o resultado deverá ser uma janelinha mostrando a mensagem striker07.wordpress.com 🙂

Você pode perceber que o Code::Blocks exibe uma janela de console junto com a aplicação. Para remover isso, vá ao menu Project -> Properties. Na aba Build targets, troque a opção que está como Console application para GUI application.

Bom, é isso. Quando der um tempinho eu posto aqui como utilizar imagens JPG e arquivos em MP3.

Até a próxima!

  • Caraca, depois uns 10 tutoriais somente esse funcionou. vlw mesmo cara tava desesperado já
    se você souber algum tutorial para instalar allegro em win7 64 bits avisa ou posta aqui tbm
    tenho certeza que tem um monte de gente vendo complicações nisso tbm.
    VLW

  • Daniel San

    Galera eu to precisando de ajuda para instalar o Allegro 5 no Ubuntu 11.10 amd64!!! Não consigo fazer a integração com o codeBlocks:/ alguma coisa da errado. Mas esse tutorial funcionou 100% porem quero usar o Allegro 5. Estou seguindo esse tutorial aqui: https://sites.google.com/a/liesenberg.biz/cjogos/home/software/ambiente-code-blocks-allegro-5
    Qualquer ajuda será bem vinda!!! =)
    Ubuntu significa: “Sou quem sou, porque somos todos nós!”

    • Rafael

      Olá! Aqui mesmo no blog tem um tutorial pra compilar a Allegro 5. Além disso temos uma série de tutoriais sobre essa biblioteca. Para utilizá-la no Code::Blocks, basta adicionar as opções de linker citadas em cada um dos posts lá em Build Options, assim como você fazia com a Allegro 4 mesmo.

  • Daniel San

    Rafael tentei mas ainda não estou conseguindo compilar o programa no code::Blocks :/
    Esta dando o seguinte erro no code::Blocks:
    ld||cannot find -lallegro_physfs|
    ||=== Build finished: 1 errors, 0 warnings ===|
    Me ajude por favor, eu uso o Ubuntu 11.10 amd64.
    Tentei esse tutorial que você colocou ai mas no terminal da o seguinte erro com o exemplo que ele colocou:
    /tmp/ccuTfqPo.o: In function `main’:
    main.c:(.text+0x22): undefined reference to `al_install_system’
    main.c:(.text+0x66): undefined reference to `al_create_display’
    main.c:(.text+0xb0): undefined reference to `al_map_rgb’
    main.c:(.text+0xe9): undefined reference to `al_clear_to_color’
    main.c:(.text+0xee): undefined reference to `al_flip_display’
    main.c:(.text+0xfb): undefined reference to `al_rest’
    main.c:(.text+0x107): undefined reference to `al_destroy_display’
    collect2: ld returned 1 exit status
    Não seu o que faço mais, já tentei tudo que encontrei 🙁

    • Rafael

      As opções do linker devem ser colocadas no menu Project -> Build options -> Linker settings -> Other linker options. Se ele não encontrou a opção -lallegro (sempre tem que ser colocada antes das outras opções), é sinal que a biblioteca não foi instalada corretamente.

  • Bruno Lucas

    Não entendi esta parte (Na aba principalCompiler settings, aba secundária Other options cole o conteúdo retornado pela chamada a allegro-config –cflags.)

    O que recebo no terminal é isto:

    Usage: allegro-config [OPTIONS] [LIBRARIES]

    Options:

    –prefix[=DIR]

    –exec-prefix[=DIR]

    –version[=VERSION]

    –cflags

    –cppflags

    –libs

    –static

    –shared

    –env

    Libraries:

    release

    debug

    profile

    • Safire Lauene

      coloque no terminal no lugar de allegro-config –cflags , isso: allegro-config –cflags

  • Safire Lauene

    Muito obrigaaada! Funcionou aqui perfeito. Só ali onde está allegro-config –cflags na verdade é allegro-config –cflags. Mesma coisa para allegro-config –libs

  • isaias

    muito bom ,funcionou,parábens!!!

  • Hugo

    Olá estou com um problema… fiz um jogo em C no windows … quando levo o projeto para o Linux e tento abrir me aparece as seguintes mensagem:

    ————– Build: Debug in aplicacao —————

    Linking console executable: bin/Debug/aplicacao
    obj/Debug/main.o: file not recognized: File format not recognized
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings

  • Bom trabalho, muito obrigado por este artigo. Eu recomendo aprender mais sobre salas de dados virtuais para a segurança dos dados.