allegro5 - Как запустить на Linux?

Я настроил Allegro 5 и смог успешно скомпилировать следующий код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <allegro5/allegro.h>
void error(char *msg)
{
   fprintf(stderr,"%s : %s\n", msg, strerror(errno));
   exit(1);
}
int main(int argc, char **argv)
{
ALLEGRO_DISPLAY *display = NULL;

if(!al_init())
   error("Could not initailize allegro");

display = al_create_display(640, 480);
if(!display)
   error("fail to display");

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

Но после запуска выдал сообщение об ошибке:

Не удалось инициализировать allegro: нет такого файла или каталога.

Я не знаю, что не так. Моя ОС - Ubuntu, я успешно скомпилировал код:

gcc try.c -lallegro 

Но не удалось запустить его с помощью:

./a.out

person 陳文炳    schedule 18.12.2012    source источник
comment
Я не знаком с Allegro, но попробуйте установить strace и запустить strace ./a.out, чтобы увидеть, что именно он не может найти.   -  person James McLaughlin    schedule 18.12.2012
comment
он показывает: access(/etc/ld.so.nohwcap, F_OK) = -1 ENOENT (Нет такого файла или каталога) open(/home/tom/Exercise/c/game/allegro5.cfg, O_RDONLY) = -1 ENOENT (Нет такого файла или каталога) open(/etc/allegro5rc, O_RDONLY) = -1 ENOENT (Нет такого файла или каталога) open(/home/dreamloser/allegro5rc, O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)   -  person 陳文炳    schedule 18.12.2012
comment
Вы должны использовать pkg-config вместо -lallegro. В любом случае, скомпилируйте отладочную версию Allegro и проверьте allegro.log.   -  person Matthew    schedule 18.12.2012


Ответы (1)


Для работы Allegro требуется файл конфигурации и, возможно, другие файлы. Судя по вашему комментарию, возможно, поэтому он и не работает. Из ридми:

"

Обычно программа установки и allegro.cfg находятся в том же каталоге, что и программа Allegro, которой они управляют. Это хорошо для конечного пользователя, но это может быть проблемой для программиста, использующего Allegro, потому что у вас может быть несколько программ в разных каталогах и вы хотите использовать один allegro.cfg для всех них. В этом случае вы можете установить переменную окружения ALLEGRO в каталог, содержащий ваш allegro.cfg, и Allegro будет искать там, если в текущем каталоге нет allegro.cfg.

...

В Unix, BeOS и MacOS X подпрограммы файла конфигурации также проверяют ~/allegro.cfg, ~/.allegrorc, /etc/allegro.cfg и /etc/allegrorc в указанном порядке, а файлы клавиатуры и языковые файлы могут храниться в вашем домашнем каталоге или в /etc/.

Узнать больше:

http://alleg.sourceforge.net/stabledocs/en/readme.html#configuration

person Brandin    schedule 09.01.2013