Компиляция кода C++ с allegro 5 и g++

Какие флаги мне нужно добавить в g++ для компиляции кода с использованием allegro 5? Я старался

g++ allegro5test.cpp -o allegro5test `allegro-config --libs`

но это не работает. Я использую Ubuntu 11.04. Я установил allegro 5, следуя инструкциям на http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_SVN/Linux/Debian

Я старался:

g++ allegro5test.cpp -o allegro5test `allegro-config --cflags --libs`

И это также дает кучу неопределенных ошибок, таких как: неопределенная ссылка на `al_install_system'

allegro-config --cflags --libs выходы:

-I/usr/local/include
-L/usr/local/lib -lalleg

2 ответа

Решение

Итак, вы успешно установили allegro5 в вашу систему из SVN. Одна вещь, которую вы должны знать, это то, что эта сборка не поставляется с allegro-config. Если он установлен в вашей системе, это означает, что вы ранее установили allegro4.

В allegro5 внесено множество изменений, включая различные процедуры инициализации, имена библиотек и функций.

Вот приложение hello world для новой версии:

#include <stdio.h>
#include <allegro5/allegro.h>

int main(int argc, char **argv)
{
   ALLEGRO_DISPLAY *display = NULL;

   if(!al_init()) {
      fprintf(stderr, "failed to initialize allegro!\n");
      return -1;
   }

   display = al_create_display(640, 480);
   if(!display) {
      fprintf(stderr, "failed to create display!\n");
      return -1;
   }

   al_clear_to_color(al_map_rgb(0,0,0));
   al_flip_display();
   al_rest(10.0);
   al_destroy_display(display);
   return 0;
}

Обратите внимание, как команда для компиляции этого приложения относится к другим именам каталогов и библиотек, которые отличаются от предыдущей версии allegro:

g++ hello.cpp -o hello -I/usr/include/allegro5 -L/usr/lib -lallegro

Allegro 5 использует pkg-config.

pkg-config --libs allegro-5.0 allegro_image-5.0

И так для каждой библиотеки, которую вы используете.

Другие вопросы по тегам