Most, hogy megérkezett a 3.0.0 (Aki nem tudja, hogy miről beszélek, ne is olvasson tovább. Vagy csak saját felelősségére. De arra is minek?!), és Debianék (Ha még ezt sem ismeri, akkor tényleg ne.) is szépen felpatchelték, becsomagolták, én meg letöltöttem, kicsomagoltam és kicsit átnéztem a konfigot (tényleg csak kicsit, mert "make oldconfig"-hoz se volt türelmem...) már kezdtem is magamnak fordítani. És mivel ezen az egy gépen fog csak futni, lentebb látható módon beállítottam egy környezeti változót, ami hatással lesz a fordításra. Az első sor, amit kiírt, ez volt:
Makefile:655: "WARNING: Appending $KCFLAGS (-march=native -mtune=native) from environment to kernel $CFLAGS"
Ez miért warning?! Azért van a KCFLAGS, nem? Mondjuk kedves tőle, hogy szól, (pedig csak tudom már, hogy milyen [ehhez hasonló célú] környezeti változók vannak hogyan és miért beállítva...) de hogy csupa nagybetűs WARNING volna?!
Mindegy, ő tudja, csak megakadt rajta a szemem. Olyannyira, hogy ezt kiírtam ide. Hogy miért nem máshova, a blog első posztjában van leírva.
(Megj.: "make -j 8"-at indítottam [Mert az jó. Meg miért ne.] egy 1.8 GHz-es "Mobility" Athlon X2-n [TK-55], és VLC-ben a netes audiostream meg se röccen, compiz sem akad, Chromium sem érzi, szóval a scheduler [CFQ, de nem tudom, hogy a többi milyen lenne] már 2.6.38-ban is jó volt. Meg PREEMPT, meg automatic process grouping, meg 1000Hz, meg miegymás.)
A következő címkéjű bejegyzések mutatása: make. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: make. Összes bejegyzés megjelenítése
2011. júl. 28.
2010. szept. 5.
Többplatformos fejlesztőkörnyezet
Amint ígértem, problémamegoldás.
A lényeg: tudni kell a kódot szerkeszteni, lefordítani és a programot futtatni 2 platformon, ráadásul winen penrájvról, telepítési jogok nélkül.
CodeBlocks Windowsra:
Egész jó cross-platform IDE, sok fordítót tud alkalmazni.
Lehet belőle beépített MinGW-set szedni, ami viszont egyrészt régi, másrészt valamilyen TDM kiadás, ami nem kompatibilis az előre fordított SFML libekkel.
(Az meg nekem kell, mert jó.)
Más gond szerintem nincs vele, tehát használható, ha valakinek nem kell előre fordított library, vagy fordít belőle sajátot. Akinek kell SFML, de nem fordít sajátot, annak letöltendő az épp pár napja kiadott installer mingw 4.5-höz, ami jó SFML-hez.
Ezt feltelepítve és az eredménnyel a CodeBlocks MinGW könyvtárát felülírva meg is van a frissített, "sima kiadású" fordító az IDE-be.
Megkérdezi, hogy MSYS-t telepítsen-e. Ez remek megoldás lenne, mert így nem is annyira kell a CodeBlocks, hanem egyszerű, jól megszokott Linux shellt kapunk win alatt - ott magától értetődő a make használata -, de az fstab fájlt igazítani kell a pendrive aktuális betűjeléhez, (csak a mingw könyvtárát kell becsatolni, de relatív útvonalat nem lehet megadni) és ha jól tudom, plusz egy dll függőséget is ad, ezért nekem marad a C::B. Hogy azt a dll-t lehet-e helyettesíteni statikus linkeléssel, nem próbáltam.További hátrány, hogy bár Notepad++ remekül alkalmazható lenne kódolásra, nem találtam módot egygombos fordításra/futtatásra, illetve azt is igazítani kellett volna a betűjelhez.
Továbbá beállítandó a CodeBlocks-ban a fordító binárisainak lelőhelye, az executables résznél a make-t meg ki kell javítani a mingw32- kezdetűre. Más betűjelre hurcolva itt nyomkodni kell majd az Autodetect-et. (hát... ez MSYS-nél is gond volt... viszont itt csak egy gombnyomás!)
Saját Makfile használatára - mert az nekünk jó - van egy külön opció a projekt beállításaiban, és a bizonyos körülmények között futtatandó parancsok/targetek (pl. egy fájl fordítása, teljes pucolás, stb.). Ezek testre/ízlésre/Makefile-ra szabandók.
A Makefile-ban így lehetséges a platform megállapítása:
ifeq($(shell uname -s), Linux)
#ami linuxon kell
else
#ami windowson kell
endif
Amint lefordítjuk az első programot, átdobjuk haver gépére, látjuk, hogy dll kell neki. Ennek kiküszböléséhez a -static-libgcc opciót adjuk át a fordítónak (Makefile-ban), a MinGW/lib/gcc/4.5.0/libstdc++.dll.a, MinGW/lib/gcc/4.5.0/libstdc++.dll.a-gdb.py, MinGW/lib/gcc/4.5.0/debug/libstdc++.dll.a fájlokat pedig nevezzük át, hogy ne találja meg, így kénytelen lesz statikusan linkelni. (azt hiszem az MSYS még ezen kívüli dll Linuxon meg úgyse nagyon szokás statikusan linkelni a dolgokat.
Már csak azért, mert szeretem az egy exe-s projekteket.
Azt mondják, "Amit megtanulsz, azt nem vehetik el tőled.".
Szerintem "Amit statikusan linkelsz, az nem fog hiányozni az exe mellől.".
Akinek ez nem fontos, másolgassa csak az exe mellé a dll-eket, amikért sír.
Linux:
Mivel jelen esetben nem kell hurcolni pendrájvon, a lehetőségek végtelenek. Nem mintha egyébként nem lennének azok, de így meg annál is inkább.
Amit én használok, az gedit, három "külső eszközzel", amik sorban az all, run és clean targetekkel futtatják make-t az aktív dokumentum könyvtárában egy billentyűleütésre. Szintaxis-kiemelést is tud, ennél több nem is kell.
A lényeg: tudni kell a kódot szerkeszteni, lefordítani és a programot futtatni 2 platformon, ráadásul winen penrájvról, telepítési jogok nélkül.
CodeBlocks Windowsra:
Egész jó cross-platform IDE, sok fordítót tud alkalmazni.
Lehet belőle beépített MinGW-set szedni, ami viszont egyrészt régi, másrészt valamilyen TDM kiadás, ami nem kompatibilis az előre fordított SFML libekkel.
(Az meg nekem kell, mert jó.)
Más gond szerintem nincs vele, tehát használható, ha valakinek nem kell előre fordított library, vagy fordít belőle sajátot. Akinek kell SFML, de nem fordít sajátot, annak letöltendő az épp pár napja kiadott installer mingw 4.5-höz, ami jó SFML-hez.
Ezt feltelepítve és az eredménnyel a CodeBlocks MinGW könyvtárát felülírva meg is van a frissített, "sima kiadású" fordító az IDE-be.
Megkérdezi, hogy MSYS-t telepítsen-e. Ez remek megoldás lenne, mert így nem is annyira kell a CodeBlocks, hanem egyszerű, jól megszokott Linux shellt kapunk win alatt - ott magától értetődő a make használata -, de az fstab fájlt igazítani kell a pendrive aktuális betűjeléhez, (csak a mingw könyvtárát kell becsatolni, de relatív útvonalat nem lehet megadni) és ha jól tudom, plusz egy dll függőséget is ad, ezért nekem marad a C::B. Hogy azt a dll-t lehet-e helyettesíteni statikus linkeléssel, nem próbáltam.További hátrány, hogy bár Notepad++ remekül alkalmazható lenne kódolásra, nem találtam módot egygombos fordításra/futtatásra, illetve azt is igazítani kellett volna a betűjelhez.
Továbbá beállítandó a CodeBlocks-ban a fordító binárisainak lelőhelye, az executables résznél a make-t meg ki kell javítani a mingw32- kezdetűre. Más betűjelre hurcolva itt nyomkodni kell majd az Autodetect-et. (hát... ez MSYS-nél is gond volt... viszont itt csak egy gombnyomás!)
Saját Makfile használatára - mert az nekünk jó - van egy külön opció a projekt beállításaiban, és a bizonyos körülmények között futtatandó parancsok/targetek (pl. egy fájl fordítása, teljes pucolás, stb.). Ezek testre/ízlésre/Makefile-ra szabandók.
A Makefile-ban így lehetséges a platform megállapítása:
ifeq($(shell uname -s), Linux)
#ami linuxon kell
else
#ami windowson kell
endif
Amint lefordítjuk az első programot, átdobjuk haver gépére, látjuk, hogy dll kell neki. Ennek kiküszböléséhez a -static-libgcc opciót adjuk át a fordítónak (Makefile-ban), a MinGW/lib/gcc/4.5.0/libstdc++.dll.a, MinGW/lib/gcc/4.5.0/libstdc++.dll.a-gdb.py, MinGW/lib/gcc/4.5.0/debug/libstdc++.dll.a fájlokat pedig nevezzük át, hogy ne találja meg, így kénytelen lesz statikusan linkelni. (azt hiszem az MSYS még ezen kívüli dll Linuxon meg úgyse nagyon szokás statikusan linkelni a dolgokat.
Már csak azért, mert szeretem az egy exe-s projekteket.
Azt mondják, "Amit megtanulsz, azt nem vehetik el tőled.".
Szerintem "Amit statikusan linkelsz, az nem fog hiányozni az exe mellől.".
Akinek ez nem fontos, másolgassa csak az exe mellé a dll-eket, amikért sír.
Linux:
Mivel jelen esetben nem kell hurcolni pendrájvon, a lehetőségek végtelenek. Nem mintha egyébként nem lennének azok, de így meg annál is inkább.
Amit én használok, az gedit, három "külső eszközzel", amik sorban az all, run és clean targetekkel futtatják make-t az aktív dokumentum könyvtárában egy billentyűleütésre. Szintaxis-kiemelést is tud, ennél több nem is kell.
Címkék:
codeblocks,
cross-platform,
gcc,
make,
mingw,
msys,
SFML,
shell
Feliratkozás:
Bejegyzések (Atom)