Forum Linux.pl

Programowanie => C/C++ => Wątek zaczęty przez: w 2015-09-19, 12:35:27

Tytuł: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-19, 12:35:27
Mam problem. Otóż przy kompilowaniu programu normalnie przez gcc na moim głównym komputerze wszystko gra, a na komputerze zastępczym program się nie uruchamia. Wersja 64 bitowa programu działa dobrze na obu systemach. problem z wersją 32bitową jest związany z błędem, że nie ma takiego pliku ani katalogu.

Pewnie muszę ustawić jakąś flagę -march, by to działało, ale nie wiem, jaką. i386, i586  i686 nie działają na moim laptopie. i386 był pierwszym mikroprocesorem z pełnym trybem chronionym stworzonym przez Intela. Jak skompilować ten program?
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: 1709 w 2015-09-19, 13:06:45
wersji 64bit nie uruchomisz na 32bit,
32 bit wersji na 64bit tak.

W mojej dystrybucji kompiluje się
32bit na 32bit systemie
64 bit na 64 bit systemie

Jesli ktoś poda przepis jak zrobić aplikacje noarch to ja też się zamienie w słuch :)
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-19, 17:23:00
Cytat:  link=topic=24134.msg130668#msg130668 date=1442660805
wersji 64bit nie uruchomisz na 32bit,
32 bit wersji na 64bit tak.

W mojej dystrybucji kompiluje się
32bit na 32bit systemie
64 bit na 64 bit systemie

Jesli ktoś poda przepis jak zrobić aplikacje noarch to ja też się zamienie w słuch :)

Dla nioarcha potrzebujesz skryptu powłoki (shell-a) z dodanymi plikami wykonywalnymi dla różnych architektur. Następnie wykonujesz uname i pobierasz informacje o architekturze.
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-19, 17:25:54
Moje pytanie było inne. Zwyczajnie mam problem, że przy próbie uruchomienia pliku pobranego z sourceforge, który działa mi na komputerze, nie działa on na komputerze z Ubuntu. Jest to jakby zwykły program konsolowy, a więc powinien działać na wielu komputerach. Wyskakuje komunikat, że nie ma takiego pliku.
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: Paweł Kraszewski w 2015-09-19, 21:56:27
Jak długo nie podasz, co to za program - a najlepiej link do niego na SF - tak długo nie będziemy w stanie pomóc.

* Jaki dokładnie komunikat dostajesz?
* Czy jest tak, że program kompilujesz na jednym a uruchamiasz na drugim komputerze?
* Co o niedziałającym programie mówi polecenie ldd? Czy wszystkie biblioteki są dostępne?
* Czy program uruchamiasz z ./ na początku, albo z katalogu ze zmiennej $PATH?
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-20, 14:02:15
1. Nie ma takiego pliku ani katalogu
2. Dokładnie
3. Nie pamiętam,ale chyba nie ma takiego pliku, ani katalogu - sprawdzę potem
4. Uruchamiam go z obecnego katalogu roboczego, ale bez ./ na początku -jednak uruchamiam też w ten sam sposób wersję 64 bitową

link do sourceforge:
https://sourceforge.net/projects/libgreattao/
Trzeba uruchomić skrypt Installer/create_installer.sh

Wygeneruje to trzy instalatory - jeden dla x86, drugi x86_64, a trzecim dla obu architektur.
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: Paweł Kraszewski w 2015-09-20, 19:48:44
Od końca:

4/ Standardowa konfiguracja Linuksa (w odróżnieniu od Windows) nie zawiera w ścieżce wyszukiwania katalogu bieżącego. Dlatego, jeżeli program nie jest w katalogu wymienionym w $PATH, musisz podać katalog, z którego trzeba program uruchomić. Jeżeli to katalog bieżący, ./ jest obligatoryjne.

3/ i 1/ wynikają z 4/

Co do samego programu - sorry, nie chcę sobie syfić systemu programem od razu wołąjącym o prawa roota bez potrzeby.
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-20, 20:59:07
Co do praw root-a, to masz rację, ale stworzyłem bibliotekę systemową, a więc instalator musi ją instalować gdzieś w /usr.

W niektórych dystrybucjach CWD jest dodawane do path. Może faktycznie nie w Ubuntu.

Jak chcesz sprawdzić, to ściągnij źródła, sprawdź zawartość Makefile, wykonaj make all INSTALPATH=$HOME/cosik, a następnie make INSTALLPATH=$HOME/cosik install

Następnie make -C Demos i uruchamiasz dema.
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-20, 21:01:26
Żeby jednak wszystko działało, to musisz ściągnąć libsell i zainstalować do katalogu libgreattao, a następnie ustawić LD_LIBRARY_PATH
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: 1709 w 2015-09-22, 11:10:32
PS:
Cytuj
ale stworzyłem bibliotekę systemową, a więc instalator musi ją instalować gdzieś w /usr.
Pomyśl kiedyś o aplikacjach portable.
Tytuł: Odp: [GCC][GLIB][Linux]
Wiadomość wysłana przez: w 2015-09-22, 16:00:14
No, masz rację - aplikacje portable są czymś lepszym, ale mimo wszystko nadal chcę utworzyć ten instalator.

Utworzę jakoś paczki dla Ubuntu.