2013-02-01 1 views
0

Allegro 5.0.8에서 게임을 개발 중이며, 컴파일을 시도하고 Linux (Mint 14)에서 실행하기 전까지 모든 것이 잘 진행되고 있습니다. .so 그래서 나는 sime 테스트를했다. C++ Allegro 5.0.8 - Linux에서 NULL을 반환하는 al_load_bitmap()

#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; 

은 이미지의 정확한 절대 경로를 인쇄합니다.

내가 뭘 잘못하고 있니?

+0

PNG 파일은 외부 라이브러리를 통해 지원됩니다. 'libpng'가 설치되어 있습니까? –

+0

나는 libpng12-0을 가지고 있지만 .. libpng12-dev ...이 아니어도 설치해야합니까 ?? – Sylar

+0

네, 아마 그걸 필요로하고'libpng' (즉'-lpng')와 링크 할 수도 있습니다. –

답변

0

나는 libpng12-0을 가지고 있습니다. 그러나 libpng12-dev ...도 설치해야합니까 ??

libpng12-dev를 설치 한 후 Allegro를 다시 빌드해야합니다. cmake의 출력은 PNG가 지원되는지 여부를 알려줍니다.

PNG 지원을 사용하여 Allegro를 다시 빌드하면 PNG 파일이 너무 커서 비디오 카드에로드 할 수 없다고 가정하면 작동합니다.