[c++] jaki kompilator

Witam.

Do tej pory programowałem w pascal/delphi oraz w turbo c++ oraz w dev c++. Jednakże były to programy pod maturę, typowe bez okienek. konsolowe.

Chciałbym zrobić coś co ma okienka, ładnie wygląda i działa. W czym najlepiej pisać, co będzie w miarę łatwe do opanowania? Pytanie dziwne, dla wielu będzie ono beznadziejne, ale nie wiem od czego zacząć.

Pozdrawiam.

Visual Studio w wersji Express, od Microsoftu :wink:

Qt Creator - genialne IDE do programowania pod bibliotekę Qt.

Programy są przenośne, skompilują się na windowsie, linuksie, macu, a nawet i od biedy (przy zachowaniu ostrożności) symbianie. Oczywiście pod warunkiem że nie będziesz używał systemowych bibliotek. Qt ma dosłownie wszystko czego potrzebujesz.

Ew. Code::Blocks i biblioteka wxWidgets, również dość łatwa i przenośna między systemami (tyle że bez symbiana już)

On korzysta z modułów MS i bywają przez to problemy z programami tworzonymi nim, o przenośności między systemami to nie ma nawet co myśleć.

Zgadzam się z kolegą, ostatnio zacząłem się wgryzać w bibliotekę Qt i jest to naprawdę potęga (w parę minut zrobiłem bardzo prostą przeglądarkę www)…

Jakich konkretnie modułów? Chodzi Ci o przenośność na poziomie binarki?

Wystarczy linkować statycznie do CRT. Jeden dropdown w opcjach projektu, zero problemów z uruchamianiem na innych komputerach.

Ryan , ale mi chodzi o to że są problemy z kompilacją kodu napisanego w Visual Studio pod innym kompilatorem c++, po prostu Visual Studio generuje nie w pełni kompatybilny kod.

VS nie generuje kodu, kod “generowany” jest przez programistę. VC++ oferuje szereg rozszerzeń (że wspomnę tylko __forceinline), z których części nie znajdziesz w innych kompilatorach. Ale to działa w obie strony.

Ryan , może coś pomyliłem bo już wieki nie używałem tego kompilatora i nie pamiętam szczegółów ale ogólnie chodzi o to że kod który poprawnie działa i kompiluje się w VS nie chce poprawnie działać w innych kompilatorach c++ a nawet kod napisany pod daną wersję VS w innej wersji często wymaga zmodyfikowania aby dał się skompilować.

W Borlandzie też skompilujesz kod, który nie skompiluje się innym kompilatorem, podobnie w zabugowanej wersji GCC dostarczanej z DevCpp. To też wina tego okropnego Microsoftu? A może tego, że C++ to bajzel nad którym nikt nie panuje?

Taka prawda, że nie ma co myśleć o przenośności nad systemami, jeśli się nie umie programować.

Powtarzam: to nie wina kompilatora (ani środowiska) a ludzi, ewoluującego języka i rozszerzeń typowych danemu środowisku. Jak wchar_t nie było w standardzie (a w drafcie) to ciężko oczekiwać, żeby każdy kompilator je wspierał (albo żeby domyślnie pracował z wbudowanym typem a nie define na unsigned short int). Jak nie ma w standardzie gwarancji zabezpieczenia przed aliasingiem wskaźników, to jasne, że gcc i VC++ będą miały własne implementacje takiego ficzera (odpowiednio __restrict__ i __declspec(restrict)). Wreszcie jeśli kod polega na konkretnym działaniu w sytuacji niezdefiniowanej przez standard (niestety częste), to autor nie ma prawa oczekiwać, że różne kompilatory dadzą identyczny wynik.

piękna dyskusja się tu zrodziła… :slight_smile: miło…, szkoda, że jeszcze sam autor - Grzechu98 - nie zabrał głosu w tym, bo nie wiemy czy zależy mu na jak to określacie ‘przenośności’ między kompilatorami i systemami, czy też chce programować w spokoju pod konkretny system : ]] ja ze swojej strony poleciłbym Visual Studio, gdyż chyba nigdzie indziej mi osobiście się tak przyjemnie nie pisało kodu jak właśnie w nim, ale to może kwestia przyzwyczajeń i upodobań, ale co tam :slight_smile:

Ujmę to tak :slight_smile:

na chwilę obecną potrzebuje czegoś, co pod windowsem będzie działać. Chcę spróbować zrobić parę programów okienkowych.

Właśnie ściągam debiana 6. Posiadam wersję 5 ale to na maszynie wirtualnej, więc się nie liczy :wink:

Chcę zacząć robić na chwię obecną coś pod windows, po pobraniu, konfiguracji debiana zamierzam postawić na mobilność. Czytałem, że pisząc programy w visual c++ nabiera się złych nawyków. Nie ma co ukrywać jestem świeżo po szkole(technikum) i nie mam wprawy, znam tylko algorytmikę i pisanie programów konsolowych. :frowning:

A ja czytałem, że Elvis żyje. Nie należy wierzyć we wszystko, co ktoś napisał. :wink: Żaden kompilator i żadne środowisko nie uchroni programisty przed napisaniem słabego kodu. Zwalanie winy na VS jest czystym lenistwem.

Ryan , co prawda to prawda, tekst że przy VS nabiera się złych nawyków słyszałem wiele razy ale nikt nie umiał wytłumaczyć o co chodzi.

Niemniej uważam że skoro kolega nie nastawia się tylko na windowsa to najlepiej żeby od razu zaczął od wieloplatformowej biblioteki Qt i wieloplatformowego Qt Creator’a.