[itk] Számítástechnika kezdőknek

C++ programozás kezdőknek - CodeBlocks telepítése és alapvető használata

[2020. április 07.] [ christo161 ]

A CodeBlocks egy C++ programozáshoz használható integrált fejlesztői környezet. Ránézésre olyasmi, mint egy szövegszerkesztő, de programozást segítő kényelmi funkciókkal van ellátva. Nem annyira profi, mint a Visual Studio vagy a Qt Creator, de a kisebb példaprogramok kipróbálásához teljesen tökéletes.

codeblocks_hello_world.png

Ez itt a C++ programozás kezdőknek tananyag legelső részének folytatása.
A tananyag következő része itt található: első program

A CodeBlocks innen tölthető le:
http://www.codeblocks.org/downloads/binaries

CodeBlocks telepítése Windowson

Windowsban a CodeBlocks telepítése megoldható next, next, finish gombokra kattintgatással. Ügyeljünk arra, hogy valószínűleg érdemes a fordítót is tartalmazó telepítőfájlt letöltenünk (amelyiknek a mingw kifejezés szerepel a nevében), különben a CodeBlocksban nem fogjuk tudni lefordítani, és futtatni a programjainkat (hacsak nem telepítünk és állítunk be hozzá manuálisan valamilyen fordítót).
Az idők során jó eséllyel frissebb verziójú CodeBlocks telepítőfájlokat lehet majd letölteni a honlapról, tehát a verziószám változni fog. Vagyis a telepítőfájl nevében a képen látható 16.01 helyett valami más fog szerepelni (pl. 17.12).

codeblocks_windows_mingw.jpg

A mingw a GCC Windows-os portja (Windowsra elkészített verziója). Tartalmazza pl. a g++ fordítót, tartalmaz linkert, assemblert (egy C++ nyelven írt programba be lehet ágyazni assembly kódot is), a C++ Standard Library header fájljait, egyéb rendszerspecifikus header fájlokat (pl. Windows API), és egyéb összetevőket. A pontos lista itt megtekinthető: http://www.mingw.org/wiki/MinGW

CodeBlocks telepítése Linuxon

Előfeltételek

Linuxon nincs olyan CodeBlocks telepítő, mint Windowson, ami a fordítót is tartalmazza, hanem a fordítót nekünk kell telepíteni, ha még nincs telepítve. Előfordulhat, hogy telepítve van. Ez Linux disztribúciónként (pl. Ubuntu, Debian, Fedora, CentOS, satöbbi) is változhat, és az is előfordulhat, hogy egy adott disztribúció egy újabb változatában alapból telepítve van, viszont a régi verzióban nincs, vagy fordítva.

Ahhoz, hogy kiderítsük, fel van-e telepítve a C++ fordító, nyissunk meg egy parancssort (Unix/Linux-szerű operációs rendszereken a parancssor szinonímái: terminál, konzol).  A tananyagban többnyire g++ fordítót használunk, amit Linuxos parancssorban ezzel a paranccsal tudunk ellenőrízni, hogy telepítve van-e:

g++ -v

Ha a g++ telepítve van, valami ilyesmi kimenetet láthatunk:

gcc_version.png

Ha nincs telepítve a g++, akkor pedig valami ilyesmi hibaüzenetet láthatunk:

gcc_not_installed.png

Vagy aki esetleg már fordítani próbál, az valami ilyesmi hibaüzenetet láthat. Parancssorban:

gplusplus_not_installed.jpg

És CodeBlocksban:

codeblocks_gplusplus_not_installed.jpg

Különböző Linux disztribúciókon más csomagkezelők lehetnek, például apt, yum, dnf, pacman és hasonlók. Debian és Ubuntu alapú disztrókon például apt csomagkezelőt használhatunk parancssorból történő telepítéshez.

Ubuntu alapú disztrókon a következő paranccsal telepíthetjük fel a g++-t:

sudo apt-get install g++

Érdemes nem csak a g++-t telepíteni, hanem a build-essential csomagot is. Mely a fejlesztéshez szükséges további alapvető és hasznos dolgokat tartalmaz.

sudo apt-get install build-essential

apt_get_install_build_essentials.jpg

Telepítés szoftverközpontból, storeból

Elképzelhető, hogy a CodeBlocks megtalálható az általunk használt Linux disztribúció (Debian, Ubuntu, Fedora, satöbbi) szoftverközpontjában vagy storejában.

ubuntu_store_codeblocks.png

A telepítés ily módon nagyon egyszerű, csak a jelszavunkat kell megadni, és persze rendszergazdai jogosultság szükséges hozzá (amivel otthoni gépen minden bizonnyal rendelkezünk).

Viszont a storeból való telepítésnek a hátránya lehet, hogy nem a legújabb verzió települ, illetve ahogy kijön egy új verzió, nem frissül automatikusan. Bár ez az egyszerűbb példaprogramok esetén valószínűleg nem eredményez semmilyen különbséget, ha valaki mégis szeretné a legfrissebb CodeBlocksot telepíteni, a következőképp teheti meg:

Ubuntu alapú Linux disztribúciókon a legfrissebb verziójú CodeBlocks telepítése

(Egy másik blogomon már írtam egy ismertetőt a Debian, és Ubuntu alapú Linuxokon történő parancssoros telepítésről.)

Megjegyzés: ha esetleg más módon (pl. storeból) telepítettük a CodeBlocksot, akkor azt érdemes letörölni, mielőtt ily módon telepítjük.

A letöltéseknél az Ubuntunál láthatunk egy címet, ami valahogy így néz ki:
https://launchpad.net/~codeblocks-devs

codeblocks_ppa.png

Ha ezt az oldalt megnyitjuk a böngészőben, akkor keressünk egy olyan részt, hogy personal package archives (PPA). Ott a release buildsre kattintsunk, ha a legutóbbi stabil verziót szeretnénk telepíteni.

codeblocks_launchpad.png

Ezt követően megnyílik egy oldal, ahol szerepel, hogy milyen parancsokat kell futtatnunk a parancssorban ahhoz, hogy telepítsük a legfrissebb CodeBlocksot.

codeblocks_launchpad_ppa.png

 Tehát ahhoz, hogy ily módon telepítsük a CodeBlocksot, ezt a három parancsot kell parancssorban futtatnunk:

sudo add-apt-repository ppa:codeblocks-devs/release
sudo apt-get update
sudo apt-get install codeblocks codeblocks-contrib

Az első parancsnak köszönhetően ahogy elérhető lesz egy újabb frissítés a CodeBlockshoz, akkor a rendszer frissítéskezelője figyelmeztet róla, és telepíthetjük azt.
A második paranccsal letöltjük az elérhető frissítéseket (nem csak a CodeBlockshoz).
A harmadik paranccsal telepítjük a CodeBlocksot.

Megjegyzés: mint ahogy az a képeken is látható, időközben megváltozott a CodeBlocks PPA címe, és ez a jövőben szintén megtörténhet. De ha felmegyünk a CodeBlocks oldalára, akkor jó eséllyel megtalálhatjuk majd az új címet.

Egyéb Linux disztrókon a legfrissebb CodeBlocks telepítése

A CodeBlocks honlapján a letöltéseknél láthatunk tar.xz kiterjesztésű fájlokat. A kívánt disztrónak megfelelőt töltsük le.

Nyissunk meg egy parancssort, tömörítsük ki a letöltött fájlt. Valami ilyesmi paranccsal:

tar -xf codeblocks_16.01_amd64_stretch.tar.xz

Különböző Linux disztrókon általában eltérő a telepítés menete, mivel más a csomagkezelő. Nem fogom minden disztró esetén ismertetni a telepítés pontos menetét, csak Ubuntu és Debian disztrók esetén.

Jellemzően a root (rendszergazda) felhasználóval telepíthetünk valamit Debianban parancssorban. Ehhez a következő parancsot használjuk.

su root

Lépjünk be abba a könyvtárba, ahova kitömörítettük a telepítőfájlokat (lehetőleg ne legyen ott más egyéb telepítőfájl). Valami ilyesmi paranccsal:

cd /home/felhasznalonev/Downloads/codeblocks_telepito/

Debianon dpkg-t, esetleg gdebi-t kell használnunk a deb fájlok telepítéséhez. Valami ilyesmi paranccsal:

dpkg -i *16.01*.deb

A telepítést követően a függőségeket is telepíteni kell, például ezzel a paranccsal:

apt-get install -f

Természetesen forráskódból is lehet telepíteni a CodeBlocksot, de az egy külön leírást is megérne, talán később majd készítek róla.

Megjegyzés: Ubuntun inkább az előző módszereket válasszuk a CodeBlocks telepítéséhez.

Hogy kezdhetünk el programot írni a CodeBlocksban?

Projekt létrehozása

Ha valamilyen fejlesztői környezetet használunk (jelen esetben CodeBlocksot), érdemes minden program számára külön projektet létrehoznunk. Például azért mert minden projekthez egyedi beállításokat használhatunk (pl. projektenként eltérő fordítókat használhatunk), vagy mert a több forrásfájlból álló programok fordítása könnyebb (bár igaz, az első példaprogramjaink egy forrásfájlból fognak csak állni).

Miután elindítottuk a CodeBlocks-ot, kattintsunk a kezdőlapon Create a new project szövegre, vagy pedig a file menüből válasszuk a New, majd a Project menüpontot.

codeblocks_new_project.png

Eleinte parancssoros programokat fogunk írni (melyek parancssorból kérik be az adatokat a felhasználótól, és a parancssorba írják ki az eredményt), így válasszuk a Console applicationt.

codeblocks_new_console_application_linux.png

Elképzelhető, hogy Windowsban és Linuxon némileg eltérő ikonok szerepelnek ebben a menüpontban, ezek grafikus felületú vagy 3D-s programok fejlesztéséhez, esetleg más programnyelveken történő fejlesztéshez használhatóak.
Sokan arra esküsznek, hogy bizonyos projektekhez jobb inkább az arra szakosodott fejlesztői környezetet használni (például DirectX-hez Visual Studiot, Qt-hoz Qt Creatort, GTK+-hoz Anjutát), de ez itt most lényegtelen.

codeblocks_new_console_application_win.png

Ebben a tananyagban a C++ programozási nyelvet fogjuk használni, így válasszuk a C++-t.

codeblocks_new_project_step_1.png

Ezt követően a legfelső szövegmezőben nevezzük el a projektünket (pl. elso_programnak), majd egyel lejjebb, a ... feliratú gombra kattintva válasszunk ki egy könyvtárat, ahová el szeretnénk helyezni a projekt könyvtárát (ami tartalmazni fogja a programunkhoz tartozó forrásfájlokat, a fordítást követően keletkező fájlokat, és egyéb fájlokat, például a projekt beállításait tartalmazó fájlt).
FONTOS: ne szerepeljen szóköz vagy ékezet sem az elérési útban, sem a projektnévben (sem pedig a projekt azon fájljainak nevében, amiket a több fájlból álló projektek esetén a projekthez majd később hozzáadunk).

codeblocks_new_project_step_2.png

A következő lépésnél kiválaszthatjuk a fordítót (alapesetben a GCC programcsomag fordítói vannak kiválasztva: gcc és g++), illetve megadhatjuk, hogy a projekt könyvtárán belül milyen könyvtárba jöjjön létre a programunk forráskódja alapján készített futtatható állomány, illetve a fordítás közbeeső lépésének fájljai.
Kezdőként itt jó eséllyel semmit nem kell átállítani, rákattinthatunk a Finish gombra.

codeblocks_new_project_step_3.png

Ekkor a CodeBlocks a projekt könyvtárában létrehoz egy main.cpp nevű forrásfájlt, amiben egy nagyon egyszerű programkódot helyez el (Hello World! szöveg kiíratása a parancssorba). Ezt a fájlt úgy nyithatjuk meg, ha a baloldali panelen duplán kattintunk a sources mappára, majd a main.cpp fájlra.

codeblocks_open_main_cpp.png

Ez a main.cpp fájl egy alapvető példaprogramot tartalmaz, mely kiírja a Hello World! szöveget a parancssorba.

Fordítás

A fordításhoz, és egyúttal a program futtatásához válasszuk a Build menüből a Build and run menüpontot, vagy használjuk az F9 gyorsbillentyűt (mindkét esetben mentésre kerülnek a forráskódban végzett módosítások).

codeblocks_build_and_run.png

Ekkor (ha nincs a fordító által észlelhető hiba a programban) a program futásának eredménye egy parancssoros ablakban lesz látható. Amikor a program futása véget ér, a parancssoros ablak nem tűnik el azonnal, hanem csak egy Enter billentyű leütését követően. De ez csak a fejlesztői környezetben van így.
Ha a Windows fájlkezelőjében duplán kattintunk a program futtatható fájljára (pl. elso_program.exe), akkor a megnyíló parancssoros ablak a program futását követően azonnal bezárul. A későbbiekben lesz szó ennek a problémának a megoldásáról is.

codeblocks_hello_world.png

Aktív projekt

Ha egyszerre több projekt van megnyitva akkor a fordítás megkísérlésekor mindig csak az aktív projekt fordul le (és/vagy kerül futtatásra).
Az aktív projekt neve a bal oldali panelen vastagabb betűkkel szerepel.

Úgy lehet egy másik projektet beállítani aktív projektnek, ha a bal oldali panelen egy nem aktív projekt nevére jobb gombbal kattintunk, és az Activate Project menüpontot választjuk.

codeblocks_activate_project.png

Clean Project

Elképzelhető, hogy egy program forrásfájljaiban módosítottunk valamit, de hiába fordítjuk újra a programot, a futtatás esetén mégsem tapasztalunk változást. Ekkor segíthet, ha töröljük a fordítás eredményét képező fájlokat, vagy ha nem vagyunk benne biztosak, hogy melyek ezek a fájlok, a bal oldali panelen az adott projekt nevére jobb gombbal kattintunk, majd a Clean menüpontot választjuk.
Értelemszerűen ezt követően a programunk forrásfájljai érintetlenek maradnak.

codeblocks_clean_project.png

Debug vs release

A CodeBlocksban az eszköztárban vagy a Build menüben a Select Target menüpontban választhatjuk ki a Debug vagy Release fordítási beállítások egyikét. Az előző tananyagrészben volt szó arról, hogy ezek mit jelentenek. Röviden:
Debug: debug információk elhelyezése a futtatható programban, kódoptimalizálás kikapcsolása
Release: nem lesznek debug információk a futtatható programban, a kódoptimalizálás be lesz kapcsolva, ez a felhasználóknak elkészített verzió

Kiválasztás után a projekt nem fordul újra automatikusan és elképzelhető, hogy egy cleanelésre is szükség lesz.

Ha használni szeretnénk a debug módot, akkor ne a Release legyen kiválasztva, hanem a Debug. Ezt leszámítva a példaprogramoknál jó eséllyel tök mindegy, hogy mi van kiválasztva.

codeblocks_debug_vs_release.png

C++11, C++14, C++17 szabványok

Ha azt szeretnénk, hogy egy CodeBlocks projektünket a fordító a C++11-es szabvány szerint fordítsa le, akkor a bal oldali panelen jobb gombbal kattintsunk a megnyitott projekt nevére, majd válasszuk a Build options menüpontot...

cpp11_build_options.png

...majd a megnyíló ablakban jelöljük be a Have g++ follow the C++11 ISO C++ language standard lehetőséget.

cpp11_build_options_2.png

Ha ezt nem tesszük meg, de a forráskódunk tartalmaz olyan kódrészletet, ami csak a C++11-es szabvány szerint érvényes, akkor a program nem fog lefordulni (a fordító nem fogja elkészíteni az indítható állományt).

Hasonlóan járhatunk el a C++14, C++17 és C++20 verziókkal.

Egyéb tudnivalók

Egy CodeBlocks projekt könyvtára és fájljai

Alapbeállítás szerint a lefordított fájl a projekt könyvtárán belüli bin könyvtárban jön létre.

codeblocks_project_files.jpg

A projekt könyvtárában találhatjuk a program forráskódját, a main.cpp-t is (később majd lesznek olyan programjaink is, amik nem csak ebből az egy fájlból állnak).
A .cbp kiterjesztésű fájl a CodeBlocks projekt fájl, ha erre duplán kattintunk, a projekt megnyílik a CodeBlocksban. Ez és a többi fájl egyéb beállításokat tartalmaz a CodeBlocks projektre nézve, a tényleges forráskódot a .cpp, .h, esetleg .cxx, .hxx, .hpp kiterjesztésű fájlok tartalmazzák.

Tetszőleges terminál beállítása Linuxon

Linuxon azt is be lehet állítani, hogy melyik parancssoros programban futtassa a CodeBlocks a fordítást követően a programot.

codeblocks_cli_types.png

Például Ubuntuban a gnome-terminalt használva:

codeblocks_gnome_terminal.png

A tananyag következő része itt található: első program

A bejegyzés trackback címe:

https://itkezdoknek.blog.hu/api/trackback/id/tr9015596276

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása