Компиляция кода C ++ с allegro 5 и g ++ - PullRequest
3 голосов
/ 16 июня 2011

Какие флаги мне нужно добавить в 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 ]

5 голосов
/ 16 июня 2011

Итак, вы успешно установили 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
3 голосов
/ 17 июня 2011

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

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

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

...