- A hozzászóláshoz be kell jelentkezni
- 569 megtekintés
Hozzászólások
Kipróbáltam, óriási!
A GitHub-on talán célszerű lenne megemlíteni, hogy ha valaki forrásból akarja telepíteni és többféle Qt van nála telepítve, akkor szüksége lehet a következőre:
qmake6 -set QT_INSTALL_PREFIX "/usr/lib64/qt6"
- A hozzászóláshoz be kell jelentkezni
Köszi a visszajelzést! A GitHub-ra hamarosan felírom a tippet!
- A hozzászóláshoz be kell jelentkezni
Windows alatt nem indul. Mindenféle dll-t hiányol.
- A hozzászóláshoz be kell jelentkezni
Köszönjük a visszajelzést! Melyik verzió: a ZIP vagy a telepítő EXE a problémás? Tudnál küldeni legalább egy DLL fájlnevet, amit hiányol? (Lehet többet is, ha van erre időd -- köszönettel vesszük!)
- A hozzászóláshoz be kell jelentkezni
Mind a kettőt próbáltam egyik se jó. (Windows 11)
Most újra feltelepítettem a dll nevek miatt: libgcc_s_seh-1.dll, libwinpthread-1.dll, libgcc_s_seh-1.dll, libwinpthread-1.dll.
Igen, kétszer írja ki mind a kettőt.
- A hozzászóláshoz be kell jelentkezni
Mind a zip-ből, mind a telepítőből hiányzik a libgcc_s_seh-1.dll és a libwinpthread-1.dll. A mingw-ből ezeket a bin/ könyvtárba másolva rendben elindul.
- A hozzászóláshoz be kell jelentkezni
Köszönjük a tippet, tényleg, ezek sajnos kimaradtak. A https://github.com/xaos-project/XaoS/releases/tag/release-4.3.1 javított verziójában már elvileg ott vannak.
- A hozzászóláshoz be kell jelentkezni
Ez a fraktálrajzolás nem nagyon hoz lázba, de ez a web alapú Qt-környezetes futtatás egy nagyon nagy királyságnak néz ki. Ezt támogatja minden Qt4-6-os projekt, vagy csak a Qt6-osok? Ha ezt így a jövőben meg lehetne oldani, hogy platformfüggetlenül, böngészőből lehessen futtatni Qt-s programokat, hogy ne kelljen a sok bloat Qt-s függőségüket feltenni, meg univerzális csomagformátumokat telepítgetni, az nagyon ász lenne. Főleg telón jönne jól, a hülye fingóappok helyett, ha valami normálisabb Qt-s megoldást lehetne használni.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Egyszerűbb alkalmazásokat valószínűleg egyszerűbb portolni. A XaoS esetében két kritikus rész volt: 1. az időzítést Qt-konform (vagy inkább: web-konform) módon kellett megcsinálni, különben a képkockák egyáltalán nem jelentek meg, 2. a felugró ablakokban lévő adatokat aszinkron módon kellett kiolvasni, különben nem voltak többé elérhetőek és így nem frissültek.
A natív verzióban ez a két probléma nem jött elő, mert egy asztali alkalmazás sokféleképpen összerakható. De egy webes alkalmazásnál kötöttebbek a lehetőségek, többek között azért is, mert aszinkron filozófiára van kitalálva. A dokumentáció nem rossz, de nem is annyira részletes. Mindkét probléma megoldására csak sok kísérletezés után tudtunk rájönni, hiába vettük fel a kapcsolatot Qt-os belső szakértőkkel is. Bizonyos korábbi verziókkal voltak fordítási vagy futtatási problémáink is, így például a XaoS esetében a 6.5.2 a minimális verzió, de más projekteknél ez lehet korábbi verzió is. Egy-két dolog nem teljesen elegáns még így se, például a felugró ablakok mérete néha túl nagy, de valószínű, hogy a 6.6-os verzióban, ami nemrég jött ki, ezt már javították.
A legnehezebb talán az volt, hogy egy működő toolchaint telepítsünk a legelső próbálkozásokhoz. Abban az időben a Qt telepítője még nem tette lehetővé, hogy a WebAssembly fordításához szükséges eszközöket automatikusan felrakjuk (vagyis forrásból kellett az egész rendszert fordítani). Most már egészen kényelmesen és viszonylag gyorsan feltehető a szükséges toolchain. Arra azért most is figyelni kell, hogy a megfelelő Qt verzióhoz a megfelelő Emscripten verziót telepítsük, különben furcsa problémák léphetnek fel a fordítás vagy a futtatás közben.
A Qt Creator rendkívül jól használható volt a fejlesztés során, mert gyorsan lehetett váltani a natív és a WebAssembly konfiguráció között. A natív verzió jól debugolható, a WebAssembly sajnos nem, de legalább a fordítási idő kellemes. Így azt a módszert használtuk, hogy ha valami nem működött WebAssemblyben, akkor igyekeztünk megtalálni azt a helyet a kódban a natív futtatás során, ahol a webes verzió elszállhat vagy hibásan működhet, és debug üzenetekkel (amelyek a browser konzolján is látszanak) próbáltunk rájönni a hiba okára. Így néhány furcsa problémára is fény derült, ami abból fakadt, hogy a webes fordító nem mindenfajta C++-kódot tud rendesen lefordítani: bizonyos egzotikus részeket, ahol trükkösen hívja egyik függvény a másikat, át kellett emiatt alakítanunk.
Összességében elmondható, hogy reális volt a 3 hónapos GSoC-projektkiírás. Az indiai srác, Abhishek, sok részét jól összerakta az új kódnak (pl. átírta a Qt 5-ös részeket Qt 6-kompatibilisre, és ő csinálta az időzítés javítását is), a felugró ablakok javítása viszont kifogott rajta. Úgy gondolom, ehhez az utóbbi részhez sok éves programozói tapasztalat kellett, nem is feltétlenül mélységig ható C++-tudás, hanem inkább bátorság (hogy szétverem/újraírom a kódot) és kitartás. Ezt előre nem lehetett sajnos látni, de hát a programozás már csak ilyen.
- A hozzászóláshoz be kell jelentkezni