Autor Wątek: Kompilacja z biblioteką Allegro  (Przeczytany 2877 razy)

Offline Deith

  • Użytkownik

# Wrzesień 15, 2007, 17:09:26
Ściągnąłem sobie bibliotekę allegro, skompilowałem (nie pokazywało żadnych błędów) i postanowiłem sprawdzić jak działa więc stworzyłem prosty plik
#include <iostream>
#include <allegro.h>

int main() {
    allegro_init();
    allegro_exit();
    return 0;
}
który skompilowałem
Cytuj
Webboy:/home/lee/Smieci # c++ allegro.cpp

ale podczas kompilacji konsola wyrzuca mi błędy
Cytuj
/tmp/ccsbL4WI.o: In function `main':
allegro.cpp:(.text+0x32): undefined reference to `_install_allegro_version_check'
allegro.cpp:(.text+0x37): undefined reference to `allegro_exit'
collect2: ld returned 1 exit status

W necie wygrzebałem coś i dopisałem -lalleg, ale wywala mi
Cytuj
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: cannot find -lalleg
collect2: ld returned 1 exit status
Instalowałem to z pliku .tar.gz
Cytuj
tar -zxvf allegro-4.2.2.tar.gz
cd allegro-4.2.2
./configure
make
make install
Z tego co zauważyłem jeszcze to w /lib i /usr/lib nie ma żadnych bibliotek liballegxx etc. Mam poinstalowane podstawowe biblioteki, bo już wcześniej pisałem w c++, ale teraz postanowiłem zrobić coś więcej stąd ten ekscentryczny pomysł na allegro. System to OpenSuSE 10.2
« Ostatnia zmiana: Wrzesień 15, 2007, 17:11:35 wysłana przez Deith »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Wrzesień 15, 2007, 17:18:02
Kilka uwag:
- a zainstalowałeś ta bibliotekę? ('make install'),
- zamiast -lalleg pod Linuksem używa się jakiegoś specjalnego polecenia, które dodaje parametry w zależności od instalacji (nie pamiętam dokładnie jakiego),
- wszystko powyższe jest w readme dotyczących instalacji i użytkowania biblioteki ;)

EDIT: OK, nie zauważyłem, że 'make install' już masz. Zapomniałeś jednak o 'fix.sh' na początku (widać, że nie przeczytałeś dołączonej instrukcji).
« Ostatnia zmiana: Wrzesień 15, 2007, 17:24:15 wysłana przez Krzysiek K. »

Offline Deith

  • Użytkownik

# Wrzesień 15, 2007, 17:58:03
Ok przeinstalowałem to jeszcze raz tym razem z ./fx.sh przed ./configure i działa (nie wysypuje się przy kompilacji), tylko "martwi" mnie jedna rzecz. Czy dało by się "coś" zrobić, żeby nie trzeba było za każdym razem pisać
Cytuj
g++ test.cpp -o test `allegro-config --libs`
?

maho

  • Gość
# Wrzesień 15, 2007, 18:03:09
stworzyc sobie makefile :)

Offline Deith

  • Użytkownik

# Wrzesień 15, 2007, 18:20:22
No wszystko działa jak należy, jeszcze ostatnie (mam nadzieję ;)) pytanie, znacie może jakiś program pod linuksa, który ma normalne kodowanie składni c++? Bo Bluefishowe kodowanie "c" to mnie się lekko dzikie wydaje.

Dziękuję pięknie za pomoc :)