Я начинаю с Allegro 5, но вскоре я застрял во второй программе, похожей на hello-world. После некоторой отладки я пришел к выводу, что программа вызывает сбой при вызове функции al_clear_to_color(ALLEGRO_COLOR)
, Я пытался связать Allegro статически и динамически, но проблема все еще остается. Я полностью потерян.
Вот код:
#include <cstdio>
#include <allegro5/allegro.h>
int main() {
ALLEGRO_DISPLAY *display;
ALLEGRO_KEYBOARD_STATE kbState;
if(!al_init())
return 0;
if(!al_install_keyboard())
return 0;
display = al_create_display(800, 600);
if(!display)
return 0;
do {
al_get_keyboard_state(&kbState);
al_clear_to_color(al_map_rgb(255, 255, 255));
al_flip_display();
al_rest(0.5);
} while(!al_key_down(&kbState, ALLEGRO_KEY_ESCAPE));
al_destroy_display(display);
return 0;
}
редактировать:
Подставляя строку
al_clear_to_color(al_map_rgb(255, 255, 255));
для линии
al_clear_to_color(tempClearColor);
декларирование
ALLEGRO_COLOR tempClearColor = al_map_rgb(255, 255, 255);
до запуска цикла он работает, но вылетает, когда функция
al_destroy_display(display);
называется.
Отладчик возвращает сообщения:
Ошибка при чтении символов общей библиотеки для C: \ Program Files (x86) \ CodeBlocks \ MinGW \ bin \ libstdc ++ — 6.dll:
Программа получила сигнал SIGSEGV, Ошибка сегментации.
Задача ещё не решена.
Других решений пока нет …