Strona 1 z 1

[C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 23 lis 2014, 15:10
autor: noindyfikator
Witam. Chciałem stworzyć sobie prostą grę i dodać ją do ubuntu software centrum, tak żeby zdobyć nowe doświadczenia.
Gra została napisana, teraz występuje taki problem:
Podczas kompilacji gra uruchamia się bez problemu, natomiast jeżeli chcę uruchomić grę z pliku wykonywalnego wyskakuje taki błąd:

Kod: Zaznacz cały

noinek@Inspiron-7720:~/NetBeansProjects/Shooter/dist/Debug/GNU-Linux-x86$ ./shooter
./shooter: error while loading shared libraries: libsfml-audio.so.2: cannot open shared object file: No such file or directory
Skopiowałem biblioteki SFML do usr/local/lib ale to również nie pomogło, jakieś pomysły?

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 23 lis 2014, 20:06
autor: TrolleY
Wygląda jakbyś albo nie miał zainstalowanej tej biblioteki, albo masz zainstalowaną ją na inną architekturę (zależy jaki masz system, może masz np tylko wersję 64b). Ew. zdarza się, że biblioteka jest zainstalowana, ale w innej lokalizacji niż jest poszukiwana. Wtedy zwykle wystarczy dodać linka symbolicznego.

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 24 lis 2014, 09:22
autor: noindyfikator
Pobrałem bibliotekę graficzna SFML do tworzenia gier 2D. Zapisałem ją w home/noinek ( nazwa uzytkownika). Skonfigurowałem NetBeans I CodeBlocks aby można było pisać programy w tej bibliotece. Wszystko działa, programy śmigają ale tylko podczas kompilacji. Tak to wygląda, na jednym i drugim IDE, więc to błąd z bibliotekami. Bibioltek sie nie istalowało w systemie. Mam system 64bit i biblioteki też są na system 64 bitowy

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 24 lis 2014, 15:13
autor: xwizard
Aby systemowa ładowarka bibliotek widziała je, musisz je zainstalować, albo dodać do LD_LIBRARY_PATH, o ile dobrze pamiętam.

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 24 lis 2014, 18:13
autor: noindyfikator
A jak je dodać do LD_LIBRARY_PATH?

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 24 lis 2014, 21:23
autor: TrolleY
Jest to zmienna środowiskowa, możesz ją dodać chyba do pliku ~/.profile
Ale i tak nie jestem pewien, czy nie lepiej byłoby umieścić złącze symboliczne o identycznej nazwie w którymś z folderów znajdujących się w LD_LIBRARY_PATH dowiązane do tej biblioteki, zamiast dodawać do tej zmiennej ścieżkę do swojego katalogu domowego (nie wiem które rozwiązanie jest bardziej eleganckie).

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 24 lis 2014, 22:39
autor: noindyfikator
To może ktoś by mnie pokierował jak umieścić to złącze symboliczne czy coś do tego LD_LIBRARY_PATH żeby ten program działał?

Re: [C++] SFML, program nie uruchamia się przez plik wykonywalny.

: 25 lis 2014, 19:58
autor: mateczek
sposób 1:

odpal program mc

Kod: Zaznacz cały

sudo mc
Wskaż belką plik źródłowy i w menu kliknii
plik->dowiąż symbolicznie.
operacja podobna do kopiowania tyle że stworzy się coś w rodzaju strutu:P

sposób 2:

Kod: Zaznacz cały

ln -s target_path link_path
wada taka, że trzeba ścieżki klepać z palca. Choć przy pomocy tabulatora i też idzie sprawnie. Ja zawsze robię przy pomocy programu mc

A ink można umieścić np w katalogu /usr/lib lub /usr/lib32 :) bez zagłębiania się które jeszcze katalogi są przeznaczone na biblioteki