【问题标题】:allegro5 - How to run on Linux?allegro5 - 如何在 Linux 上运行?
【发布时间】:2012-12-18 01:20:37
【问题描述】:

我设置了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

【问题讨论】:

  • 我不知道 Allegro,但尝试安装 strace 并运行 strace ./a.out 以查看它找不到的确切内容。
  • 它显示: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(没有这样的文件或目录)
  • 您应该使用pkg-config 而不是-lallegro。无论如何,编译 Allegro 的调试版本并查看 allegro.log。

标签: c linux allegro allegro5


【解决方案1】:

Allegro 需要一个配置文件和可能的其他文件才能运行。从您的评论来看,这可能就是它不起作用的原因。来自自述文件:

"

通常,安装程序和 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

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 2021-03-11
    • 2021-09-17
    • 2015-08-15
    • 1970-01-01
    • 2016-06-06
    • 2013-01-10
    • 2018-06-23
    • 2012-02-13
    相关资源
    最近更新 更多