polkom21 Temat założony przez niniejszego użytkownika |
[SFML 2.0] Uruchamianie aplikacji pod systemem Linux » 2013-05-20 22:50:27 Witajcie. Otóż piszę grę i postanowiłem, że będzie ona na różne platformy. Ze wszystkim sobie poradziłem tylko jest jeden taki mały problem. Nie mam pojęcia czemu nie da się uruchomić gry tak bezpośrednio z pliku. Z IDE chodzi a jak kliknę 2 razy to nie chodzi (a jak uruchamiam z IDE to odpala się bez problemu). Jak odpalę grę z terminala to wywala mi, że nie można było znaleźć jakiegoś pliku od SFML ale z tych lib o ile się nie mylę to chodziło o libkę graphics. Pewnie jakiś banał to jest ale na Ubuntu nie miałem nigdy styczności z pisaniem gier. |
|
DejaVu |
» 2013-05-21 00:48:03 Wydaje mi się, że pliki *.so (czy jak się one pod Linuksem zwą) powinny znajdować się w tym samym katalogu, co plik wykonywalny (jeżeli linkujesz SFML-a dynamicznie). |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-05-21 09:28:45 No sprawdzę później i dam znać czy zadziałało czy nie. Jeszcze można by było zalinkowac statyczne wszystkie lib tylko czy to zadziała na Ubuntu. |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-05-21 10:12:08 No sprawdzilem i lipa. Wklepalem w ustawieniach w #define sfml staic i tez nic. Jakies pomysly?
EDIT: No coś tam wykombinowałem. Mam coś takiego, że libki od SFML muszą być w folderze /usr/lib inaczej nie odpala się aplikacja. Tylko teraz jak wyślę komuś plik na linuxa to go nie odpali bo nie ma plików lib u siebie. |
|
mostrom |
» 2013-05-21 16:49:07 Zauważ, że każda aplikacja pod np Ubuntu, Debiana jest spakowana i przesyłana w formacie .deb. Wydaje mi się, że program dpkg rozpakowuje wszystkie pliki niezbędne do odpalenia programu i wsadza je na swoje miejsce. Poszukaj w necie jak stworzyć takową paczkę. |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-05-21 20:21:39 No dobra można zrobić sobie paczkę deb i co z tego jak ja bym chciał wypuścić jakąś testową wersję to ciągle trzeba by było usuwać starą wersję i instalować nową a coś takiego jak na windzie jest, że ściągam, wypakowuje i odpalam na pewno jest na linuxa. |
|
m4tx |
» 2013-05-21 20:23:53 Dobra, widzę że trzeba zabrać głos w topicu... :) Powiem krótko: program szuka bibliotek wszędzie tam, gdzie prowadzą ścieżki w zmiennej $LD_LIBRARY_PATH . Dlatego też, jeśli chcesz dołączać do swojego programu własne biblioteki, niestety - trzeba się trochę namordować. Linuksowy Steam na ten przykład robi to tak: export LD_LIBRARY_PATH="$STEAM_RUNTIME/i386/lib/i386-linux-gnu:$STEAM_RUNTIME/i386/lib:$STEAM_RUNTIME/i386/usr/lib/i386-linux-gnu:$STEAM_RUNTIME/i386/usr/lib:$STEAM_RUNTIME/amd64/lib/x86_64-linux-gnu:$STEAM_RUNTIME/amd64/lib:$STEAM_RUNTIME/amd64/usr/lib/x86_64-linux-gnu:$STEAM_RUNTIME/amd64/usr/lib:$LD_LIBRARY_PATH" (fragment skryptu steam.sh). Dzięki temu właśnie możliwe jest uruchomienie Steama i załączenie dołączych do programu bibliotek. Jeśli więc chcesz zrobić coś podobnego, to chyba taki skrypt to jedno z prostszych rozwiązań. Innym, dość prostym rozwiązaniem jest skopiowanie niezbędnych bibliotek tam, gdzie będą one szukane - czyli m.in. w /usr/lib. Problem w tym, że trzeba mieć uprawnienia roota do wykonania takiej operacji. Podnoszą się również głosy, że niby $LD_LIBRARY_PATH jest złe i lepiej używać parametru dla GCC -rpath podczas kompilacji. Jak więc widać wyraźnie, problem jest bardziej złożony, niż mogłoby się wydawać. Poszukaj więc w Google hasła typu "exporting LD_LIBRARY_PATH", czy "deploying own libraries with application linux". Kilka linków wartych przeczytania, które znalazłem wcześniej: http://stackoverflow.com/questions/695530/why-do-i-have-to-define-ld-library-path-with-an-export-every-time-i-run-my-applihttp://stackoverflow.com/questions/2484265/how-do-i-get-rid-of-ld-library-path-at-run-timeEDIT: No dobra można zrobić sobie paczkę deb i co z tego jak ja bym chciał wypuścić jakąś testową wersję to ciągle trzeba by było usuwać starą wersję i instalować nową |
Słyszałeś o czymś takim jak repozytoria? :) Zresztą, wcale nie trzeba nic usuwać. |
|
« 1 » |