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

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
noindyfikator
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 154
Rejestracja: 18 mar 2014, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Architektura: x86

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

Post 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?
TrolleY
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 160
Rejestracja: 06 cze 2013, 12:40
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

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

Post 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.
Linux Mint 17 + Cinnamon (x64) / Windows 7 (x64)
noindyfikator
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 154
Rejestracja: 18 mar 2014, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Architektura: x86

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

Post 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
xwizard
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 170
Rejestracja: 30 sie 2013, 21:48
Płeć: Mężczyzna
Wersja Ubuntu: 17.10
Środowisko graficzne: GNOME
Architektura: x86_64

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

Post autor: xwizard »

Aby systemowa ładowarka bibliotek widziała je, musisz je zainstalować, albo dodać do LD_LIBRARY_PATH, o ile dobrze pamiętam.
noindyfikator
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 154
Rejestracja: 18 mar 2014, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Architektura: x86

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

Post autor: noindyfikator »

A jak je dodać do LD_LIBRARY_PATH?
TrolleY
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 160
Rejestracja: 06 cze 2013, 12:40
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

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

Post 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).
Linux Mint 17 + Cinnamon (x64) / Windows 7 (x64)
noindyfikator
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 154
Rejestracja: 18 mar 2014, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Architektura: x86

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

Post 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ł?
mateczek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 129
Rejestracja: 12 maja 2008, 22:12
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Inne
Architektura: x86
Lokalizacja: bezdomny
Kontakt:

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

Post 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
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 25 gości