Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Bibilioteka allegro  (Przeczytany 8939 razy)

sam_on

  • Gość
Bibilioteka allegro
« dnia: 2007-09-21, 13:00:05 »
Od jakiegoś czasu trochę programuję i postanowiłem napisać wreszcie coś, co można pokazać innym - jakas gierke, albo cokolwiek z grafiką, a nie jakis konsolowy programik. Kolega polecił mi bibliotekę allegro.

Instalowałem ją z i z paczki tar.gz, próbowałem też przez yasta, ale efekt jest taki, że wprawdzie kod
#include 
#include

int main()
{
return 0;
}
Się kompiluje, ale kod
#include 
#include

int main() {
    allegro_init();
    allegro_exit();
    return 0;
}
się nie kompiluje.

Po komendzie g++ main.cpp wywala mi
/tmp/cc84wRRk.o: In function `main':
main.cpp:(.text+0xa4): undefined reference to `_install_allegro_version_check'
main.cpp:(.text+0xa9): undefined reference to `allegro_exit'
collect2: ld returned 1 exit status
Po komendzie g++ main.cpp -lalleg otrzymuję
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: cannot find -lalleg
collect2: ld returned 1 exit status
Mam openSUSE 10.2 i wersję gcc 4.1.2.

Co powinienem zrobić?

mariuszadamski

  • Gość
Bibilioteka allegro
« Odpowiedź #1 dnia: 2007-09-21, 19:33:11 »
Spróbuj tak:
g++ main.cpp `allegro-config --libs --shared`

sam_on

  • Gość
Bibilioteka allegro
« Odpowiedź #2 dnia: 2007-09-23, 11:56:56 »
Instalowałem to od nowa.
Tym razem przed ./configure dopisałem ./fix.sh unix. Nadal nie działało ale po dopisaniu `allegro-config --libs --shared` zaczeło mi się kompilować i działać.

Ściągnąłem sobie pierwszy z brzegu tutorial ze strony allegro http://www.glost.eclipse.co.uk/gfoot/vivace/vivall.zip
Programy jednoplikowe kompilują się (czasmi wprawdzie z ostrzeżeniami np.
0424.c:33: warning: ‘textout’ is deprecated (declared at /usr/local/include/allegro/alcompat.h:157)
, ale działają.

Jednak programów wieloplikowych nie udaje mi się skompilować, np. po próbie skompilowania prykładu ex_1_a z chaptera 5
g++ 051s.c `allegro-config --libs --shared`
wyskakuje mi
/tmp/ccjoOpsA.o: In function `shutdown()':
051s.c:(.text+0x9b): undefined reference to `circle_destroy(circle_t*)'
/tmp/ccjoOpsA.o: In function `output()':
051s.c:(.text+0xc7): undefined reference to `circle_erase(circle_t*, BITMAP*)'
051s.c:(.text+0xde): undefined reference to `circle_draw(circle_t*, BITMAP*)'
/tmp/ccjoOpsA.o: In function `process()':
051s.c:(.text+0xf9): undefined reference to `circle_update(circle_t*)'
/tmp/ccjoOpsA.o: In function `init()':
051s.c:(.text+0x294): undefined reference to `circle_init(int, int, int, int, int, int)'
051s.c:(.text+0x2d6): undefined reference to `circle_draw(circle_t*, BITMAP*)'
collect2: ld returned 1 exit status
Ściągałem też przykłądy z innych stron i działały (wszystkie były jednoplikowe). Oznacza to że coś jeszcze mam nie tak czy po prostu źle się zabieram to przedstawionego wyżej tutoriala?

mrblur

  • Gość
Bibilioteka allegro
« Odpowiedź #3 dnia: 2007-09-23, 12:15:03 »
Programy wieloplikowe kompiluje się po kolei, a potem łączy linkerem (g++ plik1.o plik2.o -o program {biblioteki})
Przykłady allegro są przeznaczone do kompilacji przez załączony Makefile, jeśli go nie ma - sprawdź, czy twoja dystrybucja nie udostępnia allegro-examples czy czegoś w tym stylu :)

sam_on

  • Gość
Bibilioteka allegro
« Odpowiedź #4 dnia: 2007-09-23, 22:55:50 »
Ok, dzięki za pomoc :)


---- Ten wątek został podzielony ----
Wszystkie oddzielone posty znajdują się tutaj.
(Podziału dokonał użytkownik pkraszewski)