Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: kompilacja c++ na serwerze pod debianem  (Przeczytany 6297 razy)

pawel86rz

  • Gość
kompilacja c++ na serwerze pod debianem
« dnia: 2010-10-17, 12:07:27 »
Witam.

Jestem nowym użytkownikiem forum, dlatego proszę o ewentualne przeniesienie tego tematu do odpowiedniego działu.

Jeżeli chodzi o linuxa, to jestem niemalże początkującym. Jestem w trakcie robienia mojej pracy dyplomowej, której częścią jest strona www komunikująca się ze światem poprzez tcp/ip. Sama strona już powstała i działa, po wybranej akcji użytkownika dane są zapisywane do odpowiednich buforów (pliki txt), skąd chciałbym je wysyłać przez tcp/ip. No i tu pojawia się problem. Wykupiłem sobie konto ftp. Wrzuciłem stronkę i uporałem się z php i mysqlem. Wysłałem zapytanie do firmy, w której mam konto, czy mogę sobie odpalić program w C++, który będzie działał jak prosty serwer (coś tam będzie sobie nasłuchiwał na jakimś porcie i coś tam będzie sobie wysyłał - pojedyńcze kB dziennie). Firma odpisała, że ok, ale



"Może Pan umieścić na końcie program napisany w c++/c , ale musi on być skompilowany pod naszą platformę hostingową (Linux Debian, Kernel 2.6.x 32-bitowy). Skompilowany plik należy umieścic w katalogu /cgi-bin/, bo tylko w tym katalogu mogą być wykonywane skrypty/programy. "



Więc wysłałem kolejne zapytanie:


"Dzien dobry,

posiadam u Panstwa konto. Wyslalem juz do Panstwa zapytanie, czy jest
mozliwe uruchamianie na nim plikow wykonywalnych. Otrzymalem
odpowiedz, ze tak (pod warunkiem umieszczenia ich w odpowiednim
katalogu), tylko zeby byly skompilowane pod taka wersja Debiana, jaka
funkcjonuje na serwerze. Rozumiem, ze nie da sie tego skompilowac u
Panstwa na serwerze? tzn. ze nie mozna sie polaczyc przez jakies
powiedzmy ssh? czyli ze jedyna dostepna opcja jest kopiowanie plikow
przez ftp? Czy dobrze rozumiem?

Z gory dziekuje za odpowiedz i pozdrawiam,
Pawel xxxxx "


W wyniku czego otrzymalem dostep przez ssh. Jednakze nie moge odpalic zadnego kompilatora C++ (no albo to przez moją nieznajomość linuxa ;/). Jak to sprawdzić, żeby mieć 100% pewności?

Chciałbym się przygotować na najgorszą możliwość, tzn. że nie ma tam zadnego kompilatora. Czy wobec tego moglbym sobie skompilowac pliki pod inna dystrybucja linuxa? czy koniecznie musi byc to tak jak napisane w mailu od tej firmy? moze ktos posiada taki serwer i utworzylby mi konto, gdzie moglbym sobie to skompilowac? (oczywiscie jestem gotow zaplacic za to konto).

Bede wdzieczny za jakiekolwiek porady, gdyz naprawde ten problem mnie zblokowal ;/.

Pozdrawiam,
Pawel

matulik

  • Gość
kompilacja c++ na serwerze pod debianem
« Odpowiedź #1 dnia: 2010-10-17, 13:48:38 »
Możesz skompilować to pod inną dystrybucją. Ważne jest to, by było to skompilowane na tą samą architekturę, w tym wypadku dla 32 bitowego systemu.
Potem kopiujesz program i powinien działać bez problemu.
Pamiętaj też, że jeżeli używasz jakiś dodatkowych bibliotek, musisz o nie zadbać.

pawel86rz

  • Gość
kompilacja c++ na serwerze pod debianem
« Odpowiedź #2 dnia: 2010-10-17, 17:31:46 »
Wielki dzieki za szybka odpowiedz! Bardzo mnie uszczesliwiles ;] Balem sie ze rozwiazanie moze byc duzo gorsze :D. Pozdrawiam ;].

pawel86rz

  • Gość
kompilacja c++ na serwerze pod debianem
« Odpowiedź #3 dnia: 2010-10-18, 10:09:42 »
Cytat: matulik
Ważne jest to, by było to skompilowane na tą samą architekturę, w tym wypadku dla 32 bitowego systemu.
Czy moglbym prosic o uscislenie odpowiedzi? Jedyny warunek to 32bit?

Oto jak chcialem sie z tym uporac. Pogrzebalem w necie i znalazlem:
http://metamod-p.sourceforge.net/cross-compiling.on.windows.for.linux.html

Zainstalowalem wszystko jak trzeba. Kompiluje sobie plik uzywajac gcc-linux -c server.c -o server. W shellu cygwina dziala. Niestety po przekopiowaniu na serwer i probie odpalenia dostaje komunikat:
"./server cannot execute binary file

Sprawdzilem, i na serwerze jest i686 no i u mnie na kompie tez. Gdzie tkwi problem?
Uprawnienia pliku: -rwxrwxrwx.

Jak wspomnialem, jestem zielony z linuxa, wiec przypuszczam, ze to pewnie jakis podstawowy problem... Moze po prostu nei mam wystarczajacych uprawnien??

No ale jak napisalem wczesniej, firma napisala "kompilowany plik należy umieścic w katalogu /cgi-bin/, bo tylko w tym katalogu mogą być wykonywane skrypty/programy. " No i ja sie do tego zastosowalem. O co wiec chodzi??

Poproszę o jakiekolwiek wskazowki ;)

Edit: Moze dlatego, ze na serwerze jest wersja kernela 2.6.x, a ja uzywam wersji gcc 2.95?? czy to sa calkiem dwie rozne rzeczy??

darkdancer

  • Gość
kompilacja c++ na serwerze pod debianem
« Odpowiedź #4 dnia: 2010-10-19, 01:07:42 »
W drugą stronę byłoby trochę łatwiej. Z tego co mi wiadomo np. mingw nie oferuje takiej funkcjonalności (albo jest ona w strasznych powijakach), próby z cygwin też lepiej sobie odpuścić, to przedpotopowy kompilator. Najsprawniej i szybciej jest zbudować aplikację po prostu, pod docelową platformą. Twój program składa się z jednego pliku więc nawet ewentualne poprawki nie powinny zająć dużo czasu. Zacznij od man gcc