Jimbex pisze:Dziekuje wszystkim za jasne i rzeczowe wyjasnienie tematu. Postanowilem oprzec sie na QT, zas SDL w dalszej perspektywie ewentualnie tez rozpoznam

Swoja droga dlaczego lepiej uzyc SDL do programow 2d? QT per se nie bedzie wystarczylo do tworzenia, mimo tego, ze mozna na nim robic programy 3d obslugujace opengl i pokrewne?

Nie widziałem, żeby ktoś pisał, że SDL nadaje się bardziej do programów 2d, a do gier/multimediów... bo została do tego stworzona ;]. Np. w SDL utworzenie okienka i narysowanie coś w nim to kwestia kilku/kilkunastu linijek, załadowanie z pliku obrazka i narysowanie go, to dodatkowe 2 linijki - kod jest prosty i przejrzysty, a obsługa myszki, klawiatury, joysticka (razem z force feedback) to banał - do tego są również proste rozszerzenia jak SDL_net, SDL_mixer... które również z sieci, muzyki i innych rzeczy zrobią coś wprost banalnego (dodatkowo nie marnuje zasobów więc jest idealna do gier (dlatego nie tylko gry 2d z niej korzystają, a też Quake3, Nexuiz, Unreal Turnamment... i inne gry które były portowane na Linuksa lub MacOS'a)).
Ja piszę gry 3d (sprzedawane później na Windowsa) i właśnie narzędzia i edytory 3d mam w QT (jeszcze używam kilku w Wx, których jeszcze nie przepisałem ;p), ale już gry korzystają z SDL do utworzenia okna i obsługi wejścia (mysz, klawiatura, joy) - dźwięk, sieć, tekstury, czcionki... nie używam już z SDL, ale dlatego bo albo coś im brakuje (dźwięk stereo, a nie przestrzenny), lub istnieją/napisałem lepsze rozwiązania.
Jimbex pisze:I prosze jeszcze o jedno wyjasnienie - linkowanie dynamiczne jest wtedy, gdy w naglowku dla preprocesora dodam #include (xxx)?
a statyczne, gdy np otworze sobie biblioteke i przekopiuje fragmenty kodu obslugujace konkretne klasy,zdarzenia, etc?
Include nie ma nic do rzeczy (to jest nagłówek i tym się zajmuje kompilator, a nie linker).
To czy biblioteka jest statyczna czy dynamiczna decydujesz przy jej kompilacji - czy jest statyczna, czy dynamiczna/współdzielona (używasz gcc więc w google możesz sobie wyszukać gcc) - jeśli nie chcesz kompilować, a użyjesz tej z systemu (np. z ubuntu) to będzie to biblioteka dynamiczna i tak się zlinkuje.
Możesz zresztą sprawdzić czy biblioteka jest zlinkowana dynamicznie. Polecenie ldd wypisuje zależności od bibliotek współdzielonych/dynamicznych, więc wystarczy, że wpiszesz w konsoli "ldd ./plik_wykonywalny", a pojawi się lista jakich bibliotek potrzebuje do działania (jeśli nie będzie tam jej to znaczy, że jest zlinkowana statycznie, czyli program nie potrzebuje plików dll/so, a kod tych bibliotek, stał się integralną częścią programu (biblioteka zlinkowała się statycznie)).