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

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:

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:

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:

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.

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:

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:

Dê um F9 para rodar e o resultado deverá ser uma janelinha mostrando a mensagem rafaeltoledo.net 🙂

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!

15 comentários sobre “Out-of-series #3 – Configurando a biblioteca Allegro no Code::Blocks (Ubuntu)

  1. 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

    Curtir

  2. Daniel San disse:

    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!”

    Curtir

    • Rafael disse:

      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.

      Curtir

  3. Daniel San disse:

    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 😦

    Curtir

    • Rafael disse:

      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.

      Curtir

  4. Bruno Lucas disse:

    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

    Curtir

  5. Safire Lauene disse:

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

    Curtir

  6. Hugo disse:

    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

    Curtir

Deixe uma resposta para Daniel San Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.