Problem z instalacją Allegro

0

Witam serdecznie. Postanowiłem nauczyć się programować przy użyciu biblioteki Allegro, ale jakieś parszywe zrządzenie losu nie pozwala mi tego dokonać. Mianowicie, próbowałem instalować tę bibliotekę w Devie oraz Code::Blocks (kopiowałem biblioteki, zamieniałem wszystko jak należy, zmieniałem ustawienia linkera) jednak gdy chciałem sprawdzić czy poprawnie działa kompilator zwracał błąd mówiący o tym, że nie ma takiej biblioteki jak allegro.h. Nie mam już sił głowić się nad tym, więc zwracam się do doświadczonych userów o pomoc.

0

Pokaż swój kod i po kolei napisz co robisz. I dokładny błąd kompilatora podaj.

0

A więc, na devie wszedłem w Tools/Check for updates, wybrałem devpacks.org i zainstalowałem wersję Allegro 4.4.0.1. Tak dla pewności uruchomiłem ponownie deva. Wchodzę w New/Project/Multimedia/Allegro Application i wpisałem taki kod w celu sprawdzenia czy biblioteka jest w ogóle dobrze zainstalowana:

#include <allegro.h>
#include <stdio.h>

int main() 
{	
	allegro_init();
	install_keyboard();
	allegro_exit();
	
	getch();
    return 0;
}
END_OF_MAIN();

 

A błędy wyskakują takie:
Compiler: Default compiler
Building Makefile: ..\Desktop\Nowy folder\Makefile.win"
Executing make...
make.exe -f "..\Desktop\Nowy folder\Makefile.win" all
gcc.exe -c main.c -o main.o -I"C:/Dev-Cpp/include"

gcc.exe main.o Project1_private.res -o "Project1.exe" -L"C:/Dev-Cpp/lib" -mwindows -lalleg

/mingw/lib/crt2.o(.text+0x8): In function _mingw_CRTStartup': ../mingw/crt1.c:193: undefined reference to __dyn_tls_init_callback'
/mingw/lib/crt2.o(.text+0x3a):../mingw/crt1.c undefined reference to `__cpu_features_init'
collect2: ld returned 1 exit status

make.exe: *** [Project1.exe] Error 1

Execution terminated

0

Nie wygląda to na problemy z Allegro. To wina dev'a prawdopodobnie więc wywal go i zajmij się Code::Blocks'em. Mówisz, że już tam też próbowałeś i co jakie tam błędy były? Najlepiej jak wywalisz dev'a i przeinstalujesz ew. C::B jak na nim nie działa też.

0

Ok, to teraz kolej na Code::Blocks. Zainstalowałem wersję 10.05 z kompilatorem MinGW. Następnie ściągnąłem to http://static.allegro.cc/file/library/allegro-4.2.3/allegro-mingw-4.2.3.zip. Z tego co ściągnąłem wszystko zostało skopiowane do odpowiednich folderów w CodeBlocks\MinGW. Utworzyłem nowy projekt "Console Application". Project/Build Options/Linker Settings no i dodałem 7 bibliotek, które przekopiowałem z tego ściągniętego folderu. Znów wstawiam ten sam kod co w poprzednim poście i teraz kompilator z uprzejmością mnie informuje, że jednak nie ma takiego pliku jak "allegro.h". Nie mam pojęcia co jest źle.

0

To musiałeś gdzieś wkleić źle ten allegro.h. Spróbuj chwilowo dać do folderu z projektem i zobacz czy zadziała.

0

Jeżeli przeniesiesz wszystko poprawnie to podczas tworzenia nowego projektu będziesz miał opcje "Allegro application"
user image

0

Niestety, ale nie mam takiej opcji do wyboru.. Wydaje się, że wklejam wszystko dokładnie tam gdzie trzeba. Spróbuję jakoś znaleźć ten błąd, ale liczę też na pomoc. Nie wiem co jest nie tak, ale nawet banalnego programu bez wykorzystania biblioteki allegro code blocks nie chce mi skompilować i uruchomić..

0

http://cpp0x.pl/kursy/Kurs-Allegro-4-x-C++/Instalacja-Allegro/62
tu masz dokładny opis jak zainstalować(Na samy dole).

0

Z tego artykułu korzystałem i z wielu innych, ale nic to nie daje.

0
mic4ael napisał(a)

Ok, to teraz kolej na Code::Blocks. Zainstalowałem wersję 10.05 z kompilatorem MinGW. Następnie ściągnąłem to http://static.allegro.cc/file/library/allegro-4.2.3/allegro-mingw-4.2.3.zip. Z tego co ściągnąłem wszystko zostało skopiowane do odpowiednich folderów w CodeBlocks\MinGW. Utworzyłem nowy projekt "Console Application". Project/Build Options/Linker Settings no i dodałem 7 bibliotek, które przekopiowałem z tego ściągniętego folderu. Znów wstawiam ten sam kod co w poprzednim poście i teraz kompilator z uprzejmością mnie informuje, że jednak nie ma takiego pliku jak "allegro.h". Nie mam pojęcia co jest źle.
Przy ręcznej instalacji bibliotek musisz w opcjach środowiska/projektu dodać ścieżkę do katalogu z nagłówkami. Opcja nazywa się "include directories" lub jakoś podobnie. Nie mam code::blocks pod ręką żeby sprawdzić. A ścieżka ma prowadzić do rozpakowanego katalogu "include" np. "c:\allegro\include" (tanm, gdzie się znajduje allegro.h).

Przy kompilowaniu z linii poleceń (gcc) taką ścieżkę w której będą szukane pliki nagłówkowe podaje się opcją -I:
g++ -Ic:\allegro\include ...

0

A więc po wielu trudach w końcu udało mi się to zrobić, w końcu bezproblemowo wykrywa allegro.h i kompiluje. Wcześniej wspominałem o problemie z kompilowaniem, powodem było zły adres lokalizacji kompilatora (zmieniłem go w Settings\Compiler and debugger\Toolchain executables). Na koniec w Settings\Compiler and debugger\Linker Settings dodałem bibliotekę liballeg.a i w końcu zaczęło działać poprawnie.

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