C++ C++;Allegro 5.0.8-al_load_bitmap()在Linux上返回NULL

C++ C++;Allegro 5.0.8-al_load_bitmap()在Linux上返回NULL,c++,linux,allegro,C++,Linux,Allegro,我正在用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_d

我正在用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;
}
返回NULL。另一方面,这条线

std::cout << al_path_cstr(path, '/') << std::endl;
std::cout

我有libpng12-0…但没有libpng12-dev…我也应该安装吗

安装libpng12 dev后,需要重建Allegro。cmake的输出告诉您是否支持PNG


使用PNG支持重建Allegro后,如果您的PNG文件不太大,无法加载到视频卡上,它就会正常工作。

PNG文件通过外部库支持,您是否安装了例如
libpng
之类的程序?我有libpng12-0..但没有libpng12-dev..我也应该安装吗?是的,您可能也需要它,也可以链接到
libpng
(即
-lpng
)。我尝试了,但它仍然返回NULL…另一方面,我尝试了bmp,它工作了…那么,我做错了什么。。。要编译,我使用:g++*.cpp-o test-lpng12
pkg config--libs allegro-5.0 allegro_image-5.0
…我也尝试过-libpngyu应该检查您得到的错误,使用或使用。
std::cout << al_path_cstr(path, '/') << std::endl;