【发布时间】:2013-02-01 10:51:15
【问题描述】:
我正在使用 Allegro 5.0.8 开发游戏,一切进展顺利,直到我尝试在 Linux (Mint 14) 上编译并运行它......所以我做了 sime 测试;
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <iostream>
int main(void)
{
al_init();
ALLEGRO_DISPLAY *screen = al_create_display(800, 600);
al_init_image_addon();
ALLEGRO_PATH *path = al_get_standard_path(ALLEGRO_RESOURCES_PATH);
al_set_path_filename(path, "players.png");
ALLEGRO_BITMAP *img = al_load_bitmap(al_path_cstr(path, '/'));
if (img == NULL)
std::cout << al_path_cstr(path, '/') << std::endl;
al_draw_bitmap(img, 0, 0, 0);
al_flip_display();
while (true){}
return 0;
}
这个例子编译得很好,但是行
ALLEGRO_BITMAP *img = al_load_bitmap(al_path_cstr(path, '/'));
返回 NULL。另一方面,这条线
std::cout << al_path_cstr(path, '/') << std::endl;
打印图像的确切绝对路径。
我做错了什么?
【问题讨论】:
-
PNG 文件是通过外部库支持的,你有没有例如
libpng安装了吗? -
我有 libpng12-0 ..但没有 libpng12-dev...我也应该安装它吗??
-
是的,您可能也需要它,并且还需要与
libpng(即-lpng)链接。 -
我试过了,但它仍然返回 NULL... ...编译我使用:g++ *.cpp -o test -lpng12
pkg-config --libs allegro-5.0 allegro_image-5.0...我也试过 -libpng -
您应该使用
allegro_error或errno检查您遇到的错误。