Instalando a Allegro 5 no Mac OS (OSX Mavericks)

Padrão

Olá pessoal!

Essa semana precisei instalar a Allegro 5 no Mac devido a um treinamento que estou ministrando e, putz, suei um pouco para fazer tudo funcionar da forma correta! Então vou aqui passar o caminho das pedras pro pessoal que precisa ou quer fazer o mesmo 🙂

O primeiro passo é instalar algum gerenciador de pacotes, como o Homebrew ou o MacPorts. Após instalados, vamos baixar as dependências para a compilação da biblioteca.

sudo port install cmake zlib freetype jpeg libogg physfs libpng flac libtheora +universal

ou

brew install cmake zlib freetype jpeg libogg physfs libpng flac libtheora

Após a obtenção dos pacotes, entra um ajustezinho para que, durante a compilação, o cmake encontre corretamente a biblioteca FreeType (que, por algum motivo é instalada em um local não-padrão). Precisei rodar um comando para criar um link no diretório padrão para ela:

sudo ln -s /usr/local/opt/freetype/include/freetype2 /usr/local/include/freetype

Depois disso, é só baixarmos o código-fonte da Allegro (pode ser a versão 5.0 ou 5.1) e descompactar. Abra o terminal, navegue até a pasta onde ele foi descompactado e digite os seguintes comandos:

mkdir build

cd build

cmake ..

make

sudo make install

E pronto! Ah, uma dica a mais é que, no Mac, precisei sempre adicionar a opção de linker -lallegro_main. Caso contrário, ocorre um erro parecido com o seguinte:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64

Valeu pessoal, até a próxima 🙂

Captura de tela 2014-08-21 23.51.09

2 comentários sobre “Instalando a Allegro 5 no Mac OS (OSX Mavericks)

  1. Clóvis

    Prezado Rafael, primeiro gostaria de parabenizá-lo pelos seus tutoriais, são muito bons!!! Muito obrigado pela iniciativa. Bom, estou com um probleminha ao usar o Allegra, o problema surge na compilação, uso gcc em um Mac, quanto tento compilar o seu primeiro exemplo surge o seguinte erro:

    gcc all1.c -o all1 $(pkg-config –cflags –libs allegro-5) -lallegro
    In file included from all1.c:2:
    In file included from /usr/local/include/allegro5/allegro5.h:1:
    In file included from /usr/local/include/allegro5/allegro.h:26:
    In file included from /usr/local/include/allegro5/base.h:50:
    In file included from /usr/local/include/allegro5/internal/alconfig.h:28:
    /usr/local/include/allegro5/platform/alplatf.h:2:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_MINGW32
    ^
    /usr/local/include/allegro5/platform/alplatf.h:3:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_UNIX
    ^
    /usr/local/include/allegro5/platform/alplatf.h:4:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_MSVC
    ^
    /usr/local/include/allegro5/platform/alplatf.h:5:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_D3D
    ^
    /usr/local/include/allegro5/platform/alplatf.h:6:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_D3D9EX
    ^
    /usr/local/include/allegro5/platform/alplatf.h:7:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_OPENGL
    ^
    /usr/local/include/allegro5/platform/alplatf.h:8:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_MACOSX
    ^
    /usr/local/include/allegro5/platform/alplatf.h:9:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_BCC32
    ^
    /usr/local/include/allegro5/platform/alplatf.h:10:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_IPHONE
    ^
    /usr/local/include/allegro5/platform/alplatf.h:11:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_ANDROID
    ^
    /usr/local/include/allegro5/platform/alplatf.h:12:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_RASPBERRYPI
    ^
    /usr/local/include/allegro5/platform/alplatf.h:13:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_NO_FPU
    ^
    /usr/local/include/allegro5/platform/alplatf.h:14:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_DLL_TLS
    ^
    /usr/local/include/allegro5/platform/alplatf.h:15:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_PTHREADS_TLS
    ^
    /usr/local/include/allegro5/platform/alplatf.h:16:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_RELEASE_LOGGING
    ^
    /usr/local/include/allegro5/platform/alplatf.h:18:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_SHADER_GLSL
    ^
    /usr/local/include/allegro5/platform/alplatf.h:19:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_SHADER_HLSL
    ^
    /usr/local/include/allegro5/platform/alplatf.h:21:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_OPENGLES
    ^
    /usr/local/include/allegro5/platform/alplatf.h:22:2: error: invalid preprocessing directive
    #cmakedefine ALLEGRO_CFG_OPENGLES2
    ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.

    Gostaria de saber se você pode me ajudar!!! Desde já muito obrigado!!!

Deixe uma resposta