Dzielenie projektu Allegro 5 na osobne pliki

0

Witajcie :) Tworzę projekt Allegro 5 podzielony na kilka plików, w którym chciałbym we wszystkich plikach mieć dostęp do funkcji i typów z Allegro 5, jednak mam problem z kompilacją. W uproszczonej wersji do testów mam tylko dwa pliki, "main.cpp" oraz "plik_naglowkowy.hpp".

W głównym pliku mam kompilujące się i działające okno Allegro 5, więc mam na początku potrzebne includy :

#include <allegro5/allegro.h>
#include "allegro5/allegro_image.h"

oraz funkcje inicjalizujące Allegro czyli m.in. "al_init()", "al_init_image_addon()" itp.

Dodatkowo w głównym pliku includuję jeszcze swój plik nagłówkowy - "plik_naglowkowy.hpp".

W w/w pliku nagłówkowym do testu zostawiłem tylko deklarację klasy z jedną zmienną, czyli :

#ifndef PLIK_NAGLOWKOWY_HPP
#define PLIK_NAGLOWKOWY_HPP

#include <allegro5/allegro.h>
#include "allegro5/allegro_image.h"

class klasa
{
    ALLEGO_BITMAP *bitmapa;

};

#endif

jednak gdy próbuję to skompilować, to kompilator twierdzi że "'ALLEGO_BITMAP' does not name a type".
Gdy usuwam pierwszego includa i zostawiam tylko includowanie "allegro5/allegro_image.h" jest jeszcze więcej błędów :

allegro_image.h|32|error: 'al_init_image_addon' has not been declared|
allegro_image.h|32|error: expected identifier before '(' token|
allegro_image.h|32|error: expected constructor, destructor, or type conversion before ';' token|
allegro_image.h|33|error: 'al_shutdown_image_addon' has not been declared|
allegro_image.h|33|error: expected identifier before '(' token|
allegro_image.h|33|error: expected constructor, destructor, or type conversion before ';' token|
allegro_image.h|34|error: expected constructor, destructor, or type conversion before '(' token|
plik_naglowkowy.hpp|74|error: 'ALLEGO_BITMAP' does not name a type|

Próbowałem zrobić tę bitmapę jako zmienną extern i deklarować ją w pliku .cpp ale nic to nie pomogło.
Potrafi ktoś wytłumaczyć jak to rozwiązać, żeby móc we wszystkich plikach korzystać z typów i funkcji Allegro ?

0
class klasa
{
    ALLEGO_BITMAP *bitmapa;
 
};

Nie powinno być przypadkiem ALLEGRO_BITMAP?

0

Kochana uważność, a ja cały dzień zachodzę w głowę... Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1