allegro5 - 如何在Linux上运行?

4

我安装了 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

1
我不熟悉 Allegro,但是尝试安装 strace 并运行 strace ./a.out 以查看它无法找到什么。 - James M
显示: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(没有那个文件或目录) - 陳文炳
2
你应该使用 pkg-config 而不是 -lallegro。无论如何,请编译 Allegro 的调试版本并检查 allegro.log。 - Matthew
1个回答

1

Allegro需要一个配置文件和可能的其他文件来运行。从您的评论中可以看出,这可能是它无法正常工作的原因。请参考readme文件:

"

通常安装程序和allegro.cfg将与它们控制的Allegro程序放在同一个目录中。这对于最终用户来说很好,但对于使用Allegro的程序员来说可能会很麻烦,因为您可能有几个程序位于不同的目录中,并希望为所有程序使用单个allegro.cfg。如果是这种情况,您可以将环境变量ALLEGRO设置为包含您的allegro.cfg的目录,如果当前目录中没有allegro.cfg,Allegro将在那里查找。

...

在Unix、BeOS和MacOS X上,配置文件程序还会按照~/allegro.cfg、~/.allegrorc、/etc/allegro.cfg和/etc/allegrorc的顺序进行检查。键盘和语言文件可以存储在您的主目录中或者在/etc/中。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接