2016-06-28 4 views
0

Я пытался работать с версией Allegro версии 5.2, но по какой-то причине я не могу ее скомпилировать на моей системе (под управлением Windows 10 64 бит) с использованием MinGW.Allegro 5.2 ошибки компиляции

My Linker Settings

вот что я пытаюсь связать. Согласно вики это должно быть правильно, но всякий раз, когда я пытаюсь скомпилировать пример кода, я получаю ошибки, такие как

src\game.c|13|undefined reference to `al_clear_to_color'| 

Эта функция должна присутствовать все, что я знаю.

Я очень признателен за любую помощь :)

Вот пример кода, который не компилируется

#include"../include/init.h" 

#include "allegro5/allegro5.h" 
#include"allegro5/allegro_audio.h" 
#include"allegro5/allegro_acodec.h" 
#include<stdio.h> 
#include<stdlib.h> 

const float fps = 30; 
const int width = 256; 
const int height = 240; 

int init() { 
    running = 1; 

    if(!al_init()) { 
     fprintf(stderr, "failed to initialize allegro!\n"); 
     return -1; 
    } 

    timer = al_create_timer(1.0/fps); 
    if(!timer) { 
     fprintf(stderr, "failed to create timer!\n"); 
     return -1; 
    } 

    display = al_create_display(width, height); 
    if(!display) { 
     fprintf(stderr, "failed to create display!\n"); 
     return -1; 
    } 

    event_queue = al_create_event_queue(); 
    if(!event_queue) { 
     fprintf(stderr, "failed to create event_queue!\n"); 
     return -1; 
    } 

    /*if(!al_install_audio()){ 
     fprintf(stderr, "failed to initialize audio!\n"); 
     return -1; 
    } 

    if(!al_install_keyboard()) { 
     fprintf(stderr, "failed to initialize the keyboard!\n"); 
     return -1; 
    } 

    if(!al_init_acodec_addon()){ 
     fprintf(stderr, "failed to initialize audio codecs!\n"); 
     return -1; 
    } 

    if (!al_reserve_samples(1)){ 
     fprintf(stderr, "failed to reserve samples!\n"); 
     return -1; 
    }*/ 

    if(!al_init_primitives_addon()) { 
     fprintf(stderr, "failed to create primitives addon"); 
     return -1; 
    } 


    al_register_event_source(event_queue, al_get_display_event_source(display)); 

    // register timer event for max fps 
    al_register_event_source(event_queue, al_get_timer_event_source(timer)); 
    //al_register_event_source(event_queue, al_get_keyboard_event_source()); 

    al_clear_to_color(al_map_rgb(0,0,0)); 

    al_flip_display(); 

    al_start_timer(timer); 

    return 1; 
} 
+0

Ну, я действительно не понимаю, почему код не компилируется, вы можете попробовать спросить разработчиков непосредственно на форумах allegro.cc. Они обычно любят помогать новым пользователям :) – rlam12

+0

Кажется, хорошая идея :) Спасибо – unlink

ответ

0

Используют al_map_rgb_f() функцию для отображения цвета, как это: al_clear_to_color(al_map_rgb(255, 255, 255));?

Можете вставить здесь свой код?

Извините, это не должен быть ответ, потому что пока у меня нет репутации, чтобы прокомментировать это.

+0

Да, я добавил пример кода как редактирование в главном вопросе. – unlink

0

В настройках компоновщика я вижу, что вы оба связываете версию монолита и все модули отдельно. Монолитная версия - это все другие модули, объединенные в один, что делает вам не нужны все остальные библиотеки allegro_ *. Может, там конфликт? Кроме этого, проверьте журнал и проверьте, есть ли проблема с Debug и Release.

+0

Это может быть лучше, чем комментарий – mhatch

Смежные вопросы