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 ?