[+] biblioteka allegro

Potrzebujesz pomocy z C, C++, perl, python, itp.
Arnvald
Posty: 52
Rejestracja: 09 września 2007, 11:36

[+] biblioteka allegro

Post autor: Arnvald »

Mam do napisania projekt w C i chciałbym go zrobić pod linuksem, jednak mam problem z odpaleniem biblioteki allegro. Nie wiem czy to ma związek z tym, ale wydaje mi się, że może mieć. Podczas instalacji dostałem taki komunikat :

Kod: Zaznacz cały

Warning: shared library destination /usr/local/lib is not in ldd search path.
Unless you add it to /etc/ld.so.conf, you must set LD_LIBRARY_PATH to include
/usr/local/lib each time you want to run an Allegro program.
/bin/sh ./misc/mkdirs.sh /usr/local/share/aclocal
mkdir /usr/local/share/aclocal
Installing allegro.m4 to /usr/local/share/aclocal
Przy kompilowaniu programu z użyciem allegro dostaję komunikat :

Kod: Zaznacz cały

/tmp/ccQ3evZp.o: In function `main':
test2.c :( .text+0x32): undefined reference to `_install_allegro_version_check'
test2.c :( .text+0x37): undefined reference to `allegro_exit'
collect2: ld returned 1 exit status
Kod programu jest banalny, wygląda tak :

Kod: Zaznacz cały

   #include <allegro.h>
   int main()
   {
   allegro_init();
   allegro_exit();
   return 0;
   }
   END_OF_MAIN();
Macie jakiś pomysł? Bo muszę się brać za ten projekt, a nie chce mi się przesiadać na windowsa ;/
Theq
Beginner
Posty: 140
Rejestracja: 16 kwietnia 2007, 19:00
Lokalizacja: Legnica

Post autor: Theq »

Pierwsze pytanie to jak zainstalowales biblioteke allegro i dlaczego nie przez

Kod: Zaznacz cały

aptitude install liballegro4.2-dev
.

Z bledu wynika, ze ewidentnie nie linkujesz tego programiku z biblioteka allegro. U mnie

Kod: Zaznacz cały

allegro-config --libs
mowi zeby dodac

Kod: Zaznacz cały

-L/usr/lib -lalleg-4.2.2
do linkowania.
Arnvald
Posty: 52
Rejestracja: 09 września 2007, 11:36

Post autor: Arnvald »

@Theq dzieki za odpowiedź, a mógłbyś mi rozjaśnić o co chodzi z dodawaniem do linkowania? Wcześniej pod linuksem pisałem tylko małe programiki korzystałem tylko ze standardowych bibliotek :/
Theq
Beginner
Posty: 140
Rejestracja: 16 kwietnia 2007, 19:00
Lokalizacja: Legnica

Post autor: Theq »

Hmm nie wiem czy uzywasz jakiegos IDE na linuksie czy nie, ale w gcc to bedzie wygladalo np tak:
kompilacja i linkowanie razem

Kod: Zaznacz cały

gcc -L/usr/lib -lalleg-4.2.2 foo.c -o foo
co znaczy ze linkujesz z biblioteka liballeg-4.2.2.so (zauwaz obciecie "lib" i ".so"), dodatkowo opcja -L mozesz wskazac katalog gdzie dana biblioteka sie znajduje. W jakims IDE mozesz ustawiac to w opcjach projetu w zakladce linkowanie.
Arnvald
Posty: 52
Rejestracja: 09 września 2007, 11:36

Post autor: Arnvald »

Hmm, teraz wszystko się normalnie kompiluje, ale już przy odpalaniu programu wyskakuje błąd :

Kod: Zaznacz cały

./foo: symbol lookup error: /usr/local/lib/liballeg.so.4.2: undefined symbol: _blender_trans2
A z ide to też mam problemy, KDevelop każe mi zmienić czas systemowy, Eclipse też ma jakieś swoje problemy, na razie na Geany jadę i wszystko normalnie kompiluje ;)
Theq
Beginner
Posty: 140
Rejestracja: 16 kwietnia 2007, 19:00
Lokalizacja: Legnica

Post autor: Theq »

Zgaduje, ze zle zainstalowales biblioteke allegro. Jak uzywasz debiana to uzyj tej z repozytoriow jak ci napisalem.
Arnvald
Posty: 52
Rejestracja: 09 września 2007, 11:36

Post autor: Arnvald »

Niestety dalej to samo, zainstalowałem te z repo (w sumie ta sama wersja) i nic się nie zmieniło. Googlałem na temat tego błędu, ale nic konkretnego nie znalazłem (chyba że te fora po hiszpańsku/portugalsku by mi pomogły ;) ). Chyba zmuszony będę pisać to pod windą, bo czas ucieka a ja dalej nic nie mam. Ale będę się starał ogarnąć jakoś tę bibliotekę, w końcu kod jest przenośny więc w każdej chwili będę mógł się przenieść na linuksa :)
Theq
Beginner
Posty: 140
Rejestracja: 16 kwietnia 2007, 19:00
Lokalizacja: Legnica

Post autor: Theq »

Jak dalej ten sam blad to znaczy, ze linkujesz ze stara biblioteka, ktora jest tu /usr/local/lib/liballeg.so.4.2, a nie ta z repo w /usr/lib/. Zycze powodzenia w projekcie ;)
Arnvald
Posty: 52
Rejestracja: 09 września 2007, 11:36

Post autor: Arnvald »

Działa! Dziękuję Ci Theq, w końcu mogę zacząć to pisać.
ODPOWIEDZ