Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

dejot44

[C++] Czym się różni programowanie na windowsie od programowania na linuxie?

Rekomendowane odpowiedzi

Witam!Niedługo przesiadam się że swojego starego laptopa z win xp na desktopa z linuxem ubuntu 12.04.Mam parę pytań.Na tym laptopie zacząłem ćwiczyć programowanie w C++ w programie Code::Blocks.Słyszałem o wersji na linuxa,ale także słyszałem kiedyś,że takie programowanie na linuxie się różni od tego na windzie.Możecie mi podać na czym polegają te różnice?I jeszcze jedno pytanie.Czy moje programy napisane na windzie,będą działały na linuxie,czy będę musiał coś w nich zmienić,żeby zadziałały?Dziękuje za wszelką pomoc :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak piszesz w C++ wieloplatformowo to gdy wykorzystasz np QT do pisania GUI to nic sie nie zmieni gorzej gdy piszesz aplikacje z UI wykorzystując MS WFP czy jakoś tak wtedy problemy z odpaleniem na linuxie mogą być

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zapomniałem dodać,żeby zwracano się do mnie jak do idioty :E bez żadnych skrótów,wszystko ładnie wyjaśnione itp..Dopiero co siedzę w temacie od 3 tygodni i się za bardzo nie znam. O co chodzi z tymi skrótami?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zapomniałem dodać,żeby zwracano się do mnie jak do idioty :E bez żadnych skrótów,wszystko ładnie wyjaśnione itp..Dopiero co siedzę w temacie od 3 tygodni. O co chodzi z tymi skrótami?

 

Qt to zestaw bibliotek programistycznych odpowiedzialnych za ułatwianie pisania graficznych interfejsów użytkownika.

Dla przykładu: linia komend (cmd) w Windows to interfejs tekstowy, a okienka w Windowsie to interfejs graficzny.

 

Zasadniczo nie ma znaczenia na jakim OSie programujesz, znaczenie ma jak to robisz.

Proste programy działające pod Windowsem będą działały pod systemami unixowymi (oczywiście po skompilowaniu).

Przenośność tracisz głównie przy pisaniu kodu wykorzystującego specyficzne właściwości danego systemu operacyjnego (np. specyficzny sposób otwierania plików).

 

Możesz też zmierzyć się z językami typu Java, które w teorii mogą być uruchamiane na każdym OSie (choć ma to swoją cenę i wady).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Totalnie inne API dla systemu operacyjnego. Dodatkowo sama architektura Linuxa jest całkowicie odmienna. Na przykład :

 

W Windowsie jest ten idiotyczny podział na dyski, który jest widoczny na każdym kroku. Na Linuksie system plików drzewem, które zaczyna się w katalogu "/" a.k.a root. Nowy dysk twardy jest po prostu przyłączany do tego drzewa zamiast być gdzieś osobno. W tym momencie nie ma pytania : na którym dysku znajduje się plik, a jedynie jaka jest jego ścieżka z punktu "/" .

 

Pomijając sprawy GUI, Linux to system Unix-like. Więc wszystkie funkcje ze standardu POSIX ( oraz założenia jak pewne rzeczy działają ) są dostępne,co umożliwia łatwe przenoszenie na inne dystrybucje Linuxa, czy nawet inne systemy Unix/Unix-like takie jak na przykład OS X / iOS / Android / BSD itp.

 

http://pubs.opengroup.org/onlinepubs/9699919799/

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki za wyjaśnienie :D .Czyli mogę śmiało skopiować programy na linuxa,a one po skompilowaniu będą normalnie działać,tak?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

I tak I nie. Z innym Linuxem generalnie nie powinno być problemu. Jednak jeżeli chcesz coś opalić na OS X czy BSD to musisz pamiętać o tym aby nie używać niczego co jest obecne tylko na Linuxie, albo używac tzw. "Conditional Compilation". Mówię tutaj o jakiś użytecznych dodatkach które nie są częścią standardu POSIX, więc twórcy innych systemów nie muszą ich implementować.

 

Jeżeli twoje programy są z cyklu kółko i krzyżyk to nie musisz się o nic martwić, mówię tutaj o programach które wykorzystują wszelakie funkcje które dostarcza system operacyjny.

 

Generalnie polecam naukę programowania na systemy unixowe bo praktycznie wszystko na tym tylko stoi.

 

http://www.amazon.com/Advanced-UNIX-Programming-2nd-Edition/dp/0131411543

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki za pomoc i dzięki za wskazanie dobrej książki do nauki :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam!Niedługo przesiadam się że swojego starego laptopa z win xp na desktopa z linuxem ubuntu 12.04.Mam parę pytań.Na tym laptopie zacząłem ćwiczyć programowanie w C++ w programie Code::Blocks.Słyszałem o wersji na linuxa,ale także słyszałem kiedyś,że takie programowanie na linuxie się różni od tego na windzie.Możecie mi podać na czym polegają te różnice?I jeszcze jedno pytanie.Czy moje programy napisane na windzie,będą działały na linuxie,czy będę musiał coś w nich zmienić,żeby zadziałały?Dziękuje za wszelką pomoc :)

 

Zależy, co dokładnie chcesz pisać.

 

Każdy system operacyjny ma swoje API, czyli zestaw bibliotek/funkcji, z którego można korzystać przy pisaniu, ale przy prostych aplikacjach konsolowych zwykle obejdzie się bez niego, wystarczy biblioteka standardowa i aplikacje będą przenośne.

 

Do programowania GUI (interfejsów graficznych) można też użyć bibliotek przenośnych, jak choćby wymienione QT.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Push-up3k

Witam!Niedługo przesiadam się że swojego starego laptopa z win xp na desktopa z linuxem ubuntu 12.04.Mam parę pytań.Na tym laptopie zacząłem ćwiczyć programowanie w C++ w programie Code::Blocks.Słyszałem o wersji na linuxa,ale także słyszałem kiedyś,że takie programowanie na linuxie się różni od tego na windzie.Możecie mi podać na czym polegają te różnice?I jeszcze jedno pytanie.Czy moje programy napisane na windzie,będą działały na linuxie,czy będę musiał coś w nich zmienić,żeby zadziałały?Dziękuje za wszelką pomoc :)

Są pewne różnice, ale niewiele się różni, a całość jest łatwa do opanowania. Problemy przynoszą środowiska niż same systemy. Większe znaczenie nabierze system jak będziesz wybierał pomiędzy C#, a klasycznym C.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zależy, co dokładnie chcesz pisać.

 

Każdy system operacyjny ma swoje API, czyli zestaw bibliotek/funkcji, z którego można korzystać przy pisaniu, ale przy prostych aplikacjach konsolowych zwykle obejdzie się bez niego, wystarczy biblioteka standardowa i aplikacje będą przenośne.

 

Do programowania GUI (interfejsów graficznych) można też użyć bibliotek przenośnych, jak choćby wymienione QT.

 

Programy,które zamierzam przeieść na linuxa są to proste aplikacje konsolowe,gdyż jak mówiłem dopiero co wdrażam w programowanie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Qt to zestaw bibliotek programistycznych odpowiedzialnych za ułatwianie pisania graficznych interfejsów użytkownika.

Jest to kompletna bzdura. QT jest to framework( z resztą konwersja moc => c++) i do tego jego możliwości daleko wybiegają od gui począwszy od obsługi sieci przez opengl po port szeregowy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...