GEDIT használata IDE-ként (C/C++/ASM) Ubuntuban
Sziasztok!
Egy olyan lehetőséget szeretnék bemutatni, ahol a GEDIT szövegszerkesztőben írt forráskódot rögtön a szövegszerkesztőből tudjuk fordítani majd pedig futtatni, ezáltal egy nagyon egyszerű IDE (Integrated Development Environment) környezetet kapunk mindenféle külső program használata nélkül. A leírt példában C és C++ fordítást használtam, de ez persze bővíthető más programnyelvekre is.
A lényeg, hogy a GEDIT szövegszerkesztő a fájlnév és a tartalom alapján magától tudja hogy a megírt forráskód milyen típusú (shell, C, C++, stb..) és ennek megfelelően a kulcsszavaknál különböző betűtípust és színt használ (highlighting), ezáltal a programkód jobban áttekinthető. Következő hasznos funkcióként lehetőségünk van arra hogy egyszerre több fájlt is szerkesszünk, az egyes fájlokat a felső fülek segítségével tudjuk kiválasztani. Ezen kívül a GEDIT rendelkezik egy ‘Külső eszközök’ bővítménnyel, melynek segítségével külső programok futtathatók, ezek bemenetére opcionálisan az éppen szerkesztett fájl egy része/egésze/a fájl neve kerül. Ez utóbbi funkciót használjuk fel arra hogy az épp szerkesztett fájl nevét az aktuális fordítónak adjuk, a fordító lefordítja az épp megírt forráskódot, majd a bináris állományt futtatjuk, ennek a kimenete látható lesz egy felugró terminálablakban. Természetesen ennél jóval több funkció használható, minden rajtunk múlik, ez csak egy kiindulási pont.
A megvalósítás:
Mindenek előtt nyissunk egy terminálablakot és írjuk be a használni kívánt fordítók neveit, ezzel ellenőrizve hogy fel vannak-e egyáltalán telepítve. Ha nem, akkor telepítsük őket!
Pl. a g++ alapból nincs a jaunty-n, így telepíthetjük:
username@ubuntu:~$ sudo apt-get install g++
Ezután nyissuk meg a felső tálcán a ‘Helyek’ menüből a ‘Saját mappa’ menüpontot. Ha a saját mappánkban látunk egy ‘bin’ nevű mappát akkor itt nincs más dolgunk. Ha nincs ilyen, akkor hozzuk létre (jobb klikk, mappa létrehozása, nevezzük el ‘bin’ -nek)!
Következő lépésként nyissunk egy szövegszerkesztőt (GEDIT-et ajánlom) és egy üres dokumentumba írjuk be a következő shellscript kódot:
#!/bin/sh
PATH=$PATH:~/bin
export PATH
PATH="${PATH}":~bin
usage()
{
echo "Használat: run [fájlnév]"
}
if test $# -eq 0
then
usage
else
fajlnev=`echo $1 | awk -F "." '{print $1}'`
kiterjesztes=`echo $1 | awk -F "." '{print $2}'`
echo $fajlnev.$kiterjesztes
case $kiterjesztes in
'c')
echo
echo "*********************"
echo "** C Compiling **"
echo "*********************"
echo
echo "================================================================================"
echo "Errors/Warnings:"
echo
gcc -o $fajlnev.bin $1
echo "================================================================================"
echo
./$fajlnev.bin
;;
'cpp')
echo
echo "***********************"
echo "** C++ Compiling **"
echo "***********************"
echo
echo "================================================================================"
echo "Errors/Warnings:"
echo
g++ -o $fajlnev.bin $1
echo "================================================================================"
echo
./$fajlnev.bin
;;
*)
echo "Támogatott fájltípusok: *.c"
echo " *.cpp"
esac
fi
Ennek a shellscriptnek egy ‘fájlnév’ paramétere van, ezt használjuk fel arra hogy kiválasszuk a megfelelő fordítót, amely létrehozza a futtatható állományt. A fordító kiválasztása a kiterjesztés alapján történik, esetünkben ‘c’ kiterjesztés esetén a gcc fordítót használjuk, ‘cpp’ esetén pedig a g++ -t. A fordító megkapja a fordítandó fájl nevét, majd lefordítja azt, létrehozva a futtatható állományt. A futtatható állomány neve megegyezik a fordított állomány nevével, a kiterjesztése ‘bin’. A fenti shellscript ezután futtatja a futtatható állományt.
Mentsük el a dokumentumot a ~/bin könyvtárba ‘run’ néven!
Következő lépésként nyissunk terminált, majd adjunk futtatható jogosultságot a scriptünknek!
username@ubuntu:~$ chmod +x ~/bin/run
Ezután a GEDIT szövegszerkesztőben menjünk a ‘Szerkesztés’ -> ‘Beállítások’ -> ‘Bővítmények’ fülre. Itt pipáljuk ki a ‘Külső eszközök’ opciót, majd kattintsunk a ‘Bővítmény beállítása’ gombra! A megjelenő panel bal oldalán lévő ‘Új’ gombot megnyomva a megjelenő ‘Új eszköz’ -t nevezzük át ‘Futtatás’-ra! A jobb oldalon a ‘Leírás’ mezőt tetszés szerint kitölthetjük (pl: Fordítás és futtatás). A ‘Gyorsbillentyű’ mezőre kattintva egy gyorsbillentyűt kell megadnunk, ezt a billentyűt (vagy billentyűkombinációt) használva indul majd el a fordítás/futtatás. A gyorsbillentyű olyan legyen, amit a GEDIT még nem használ (pl: F1 nem lehet, mert az a Help)!
A ‘Parancsok’ mezőbe írjuk be a következőt:
#!/bin/sh
#TODO: use "gconftool-2 -g /desktop/gnome/applications/terminal/exec"
gnome-terminal --command="run $GEDIT_CURRENT_DOCUMENT_NAME"
Ezzel a paranccsal a szövegszerkesztő egy új terminálablakot nyit és az általunk előzőleg megírt ‘run’ shellscriptnek adja az általunk szerkesztett forráskód fájl nevét további feldolgozásra. A ‘Bemenet’ mezőt állítsuk ‘Semmi’- re, a ‘Kimenet’ -et ‘Megjelenítés az alsó ablaktáblán’ -ra, az ‘Alkalmazhatóság’ -ot pedig ‘Összes dokumentum’-ra!
Ezzel kész is vagyunk, kattintsunk a ‘Bezárás’ gombra, majd a ‘Beállítások’ ablakot is zárjuk be! Ha ezután a szövegszerkesztőben megnyitjuk az ‘Eszközök’ menüt akkor megtaláljuk benne az általunk létrehozott ‘Futtatás’ menüpontot.
Használat:
Új projekteknek célszerű külön mappát nyitni. Ebbe a mappába mentsük el a fő és az esetleges ‘include’-olt fájlokat.
Fontos, hogy a program fordításához a főprogramot (main függvényt) tartalmazó fájlnak olyan kiterjesztést adjunk, ami egyértelműen utal a használt programnyelvre (pl: C -> ‘main.c’ , C++ -> ‘main.cpp’), ugyanis ez alapján történik a megfelelő fordító kiválasztása. Az include-olt fájlok akármilyen kiterjesztésűek lehetnek (c, cpp, h), értelemszerűen a programunkban is úgy kell rájuk hivatkoznunk.
Ha úgy érezzük hogy egy programunk futtatásra kész, akkor először mentsük el az összes mentetlen fájlt (a füleknél a még nem mentett állományok neve előtt egy * karakter található)!
Ezután kattintsunk arra a fülre, amelyben a főprogramunk kódja található, így ez a fájl lesz az épp aktuális dokumentum! Ezután kattintsunk az ‘Eszközök’ -> ‘Futtatás’ menüpontra (vagy nyomjuk meg az általunk választott gyorsbillentyű kombinációt)!
Ekkor, ha mindent jól csináltunk, a felugró terminálablakban a fordító esetleges hibaüzenetei, majd a programunk futása közben létrejövő kimeneti eredmények láthatók.
Ha a fordító nem tudta lefordítani a kívánt programot akkor nem hozza létre a futtatható állományt. Emiatt a shellscript ezt nem is tudja futtatni, erről is hibaüzenetet kapunk. Viszont ha előtte volt már egy sikeres fordítás, akkor az előzőleg lefordított program fog lefutni, ennek az eredményei lesznek láthatóak. Ez ellen az esetlegesen zavaró tény ellen úgy védekezhetünk hogy a shellscriptben a ./$fajlnev.bin sorok után beírunk egy-egy rm $fajlnev.bin sort, ezzel futtatás után rögtön törlődik a futtatható állomány.
Grafikus alkalmazások készítésekor (pl. OpenGL GLUT) is bátran használhatjuk újdonsult IDE környezetünket.
Ha úgy kívánjuk akkor a GEDIT-ben egy másik menüpontot és shellscriptet is létrehozhatunk, pl. AVR vagy PIC mikrokontroller számára megírt programok lefordítására és égetésére, rengeteg lehetőségünk van.
Remélem hogy hasznos lesz kezdőknek-haladóknak a fenti leírás, természetesen rengetegféleképpen lehet bővíteni/finomítani rajta..
Sok sikert!
Kun-Szabó