Skip to content

Archives

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Categories

  • Nincs kategória
Trend RepositoryArticles and guides
Articles

Eclipse 4.3 (Kepler) C/C++ programozáshoz

On november 9, 2021 by admin

Az Eclipse egy nyílt forráskódú integrált fejlesztőkörnyezet (IDE), amelyet az IBM támogat. Az anyaoldal @ www.eclipse.org. Az Eclipse népszerű a Java projektek fejlesztéséhez. A C/C++, PHP, Python, Perl és egyéb webes projektfejlesztéseket is támogatja bővíthető bővítményeken keresztül. Az Eclipse keresztplatformos, és Windows, Linux és Mac OS alatt is fut.

  • How to Install Eclipse C/C++ Development Tool (CDT) 8.1.2 for Eclipse 4.2.2 (Juno)
  • Az első C/C++ program írása az Eclipse-ben
  • C++ program
  • C program
  • C++ program Makefile-val
  • Olvassa el a dokumentációt
  • C/C++ programok hibakeresése az Eclipse CDT-ben
  • Tippek & Trükkök
  • C/C++ szoftverfejlesztés a GCC használatával
  • File I/O az Eclipse-ben

How to Install Eclipse C/C++ Development Tool (CDT) 8.1.2 for Eclipse 4.2.2 (Juno)

Step 0: Install MinGW GCC or Cygwin GCC

Az Eclipse C/C++ programozásra való használatához szükség van egy C/C++ fordítóra. Windowson telepítheti a MinGW GCC-t vagy a Cygwin GCC-t. Válassza a MinGW-t, ha nem biztos benne, mert a MinGW könnyebb és könnyebben telepíthető, de kevesebb funkcióval rendelkezik.

  1. MinGW GCC:
  2. Cygwin GCC: Olvassa el a “Hogyan kell telepíteni a Cygwint” című részt. Győződjön meg róla, hogy a “gcc“, “g++“, “gdb” és “make” csomagokat választja ki a “Devel” (Fejlesztés) kategóriában – ezek a csomagok nem részei az alapértelmezett telepítésnek.
1. lépés: Az Eclipse C/C++ Development Tool (CDT) telepítése

A CDT telepítésének két módja van, attól függően, hogy korábban telepített-e már Eclipse-et:

  1. Ha már telepítette az “Eclipse for Java Developers” vagy más Eclipse csomagot, akkor a CDT plug-in-t a következőképpen telepítheti:
    Eclipse elindítása ⇒ Súgó ⇒ Új szoftver telepítése ⇒ A “Work with” mezőben húzza le a legördülő menüt, és válassza ki a “Kepler – http://download.eclipse.org/releases/kepler” (vagy juno az Eclipse 4.2 esetén; vagy helios az Eclipse 3.7 esetén).
    A “Name” mezőben bontsa ki a “Programming Language” csomópontot ⇒ Jelölje be a “C/C++ Development Tools” ⇒ “Next” ⇒ … ⇒ “Befejezés”.
  2. Ha nem telepített semmilyen Eclipse csomagot, akkor letöltheti az “Eclipse IDE for C/C++ Developers” című programot a http://www.eclipse.org/downloads címről, és a letöltött fájlt kicsomagolja egy tetszőleges könyvtárba.
2. lépés: Konfiguráció

Nem kell semmilyen konfigurációt elvégeznie, amennyiben a Cygwin vagy MinGW binárisok szerepelnek a PATH környezeti változóban. A CDT a PATH-ban keresi a C/C++ fordítóprogramokat.

Az első C/C++ program írása az Eclipse-ben

C++ program

Szint 0: Az Eclipse elindítása
  1. Az Eclipse indítása a “eclipse.exe” futtatásával az Eclipse telepített könyvtárában.
  2. Válasszon egy megfelelő könyvtárat a munkaterületének (pl., ahová a munkáit menteni szeretné).
  3. Ha megjelenik az “üdvözlő” képernyő, zárja be a “bezárás” gombra kattintva.
1. lépés: Új C++ projekt létrehozása

Minden C++ alkalmazáshoz létre kell hoznia egy projektet, amelyben az összes forráskódot, objektumfájlt, futtatható fájlt és a vonatkozó erőforrásokat tárolja.

Új C++ projekt létrehozásához:

  1. Válassza a “Fájl” menü ⇒ “Új” ⇒ Projekt… ⇒ C/C++ ⇒ C++ projekt.
  2. Megjelenik a “C++ projekt” párbeszédpanel.
    1. A “Projekt neve” mezőbe írja be a “FirstProject“.
    2. A “Projekt típusok” mezőben válassza ki a “Végrehajtható” ⇒ “Üres projekt”.
    3. Az “Eszköztárak” mezőben válassza ki a fordítóprogramot, pl.:, “Cygwin GCC” vagy “MinGW GCC” ⇒ Következő.
  3. Megjelenik a “Konfigurációk kiválasztása” párbeszédpanel. Válassza ki a “Debug” és a “Release” opciót is ⇒ Befejezés.
2. lépés: Hello-world C++ program írása
  1. A “Project Explorer”-ben (bal oldali panel) ⇒ Kattintson a jobb gombbal a “FirstProject“-re. (vagy használja a “Fájl” menüt) ⇒ Új ⇒ Forrásfájl.
  2. A “Új forrásfájl” párbeszédpanel jelenik meg.
    1. A “Source file” mezőbe írja be a “Hello.cpp“-t.
    2. Kattintson a “Finish”-re.
  3. A “Hello.cpp” forrásfájl megnyílik a szerkesztőpanelen (szükség esetén a “test.cpp“-re való dupla kattintással nyissa meg). Írja be a következő kódokat:
    #include <iostream>using namespace std; int main() { cout << "Hello, world!" << endl; return 0;}
Ha “Unresolved Inclusion Error”

Ha a #include utasítás mellett megjelenik a “unresolved inclusion” hiba, a “include paths for headers” nem megfelelően van beállítva. Válassza a “Project” menü ⇒ Properties ⇒ C/C++ General ⇒ Paths and Symbols ⇒ In “Includes” tab:

For Cygwin GCC:

  1. “Add” the following directories to “GNU C”, where $CYGWIN_HOME is your Cygwin installed directory:
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include-fixed
    • $CYGWIN_HOME\usr\include
    • $CYGWIN_HOME\usr\include\w32api
  2. “Add” the following directories to “GNU C++”, where $CYGWIN_HOME is your Cygwin installed directory:
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++\i686-pc-cygwin
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++\backward
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include
    • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include-fixed
    • $CYGWIN_HOME\usr\include
    • $CYGWIN_HOME\usr\include\w32api

A MinGW GCC esetében:

A MinGW GCC:

  1. “Add” the following directories to “GNU C”, where $MINGW_HOME is your MinGW installed directory:
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include
    • $MINGW_HOME\include
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
  2. “Add” the following directories to “GNU C++”, where $MINGW_HOME is your Cygwin installed directory:
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include\c++
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include\c++\mingw32
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include\c++\backward
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include
    • $MINGW_HOME\include
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed

MEGJEGYZÉS: A fejlécek elérési útvonalainak megtalálásához keresést végezhet a “stdio.h” típusú fejlécekre. (a C esetében) és a “iostream” (C++ esetén) a Cygwin vagy a MinGW telepített könyvtárában.

Megjegyzés: Ha a linkelés során “hiba a megosztott könyvtárak betöltése közben” hibát tapasztal. Telepítse a “libmpfr4“-t a cygwinben.
3. lépés: Compile/Build

Jobb gombbal kattintson a “FirstProject” (vagy használja a “Project” menüt) ⇒ válassza a “Build Project” lehetőséget a program lefordításához és összekapcsolásához.

4. lépés: Futtatás

A program futtatásához kattintson a jobb gombbal a “FirstProject” (vagy bárhol a forráson “test.cpp“, vagy válassza a “Run” menüt) ⇒ Run As ⇒ Local C/C++ Application ⇒ (Ha kérdezi, válassza a Cygwin gdb debuggerét) ⇒ A “Console” panelen megjelenik a “Hello, world!” kimenet.

MEGJEGYZÉS: Minden programozási problémához egy új C++ projektet kell létrehoznia. Ez a játékprogramok írásához rendetlen!

C program

Kövesse a fenti lépéseket. Hozzon létre egy “C projektet” (a “C++ projekt” helyett). Próbálja ki a következő Hello-world programot (neve “Hello.c“).

#include <stdio.h> int main() { printf("Hello, world!\n"); return 0;}

C++ program Makefile-val

A korábbi példákban úgynevezett managed-make-et használtunk, ahol az Eclipse automatikusan generált egy makefile-t a program építéséhez. Választhatjuk azt is, hogy saját makefile-t írunk, így teljes mértékben kontrollálhatjuk az építési folyamatot.

1. lépés: C++ Makefile projekt létrehozása

A “Fájl” menüből ⇒ Új ⇒ Projekt… ⇒ C/C++ ⇒ C++ projekt ⇒ A “Projekt neve” mezőbe írjuk be a “HelloCppMakefile“-t. ⇒ A “Project type” menüpontban válassza a “Makefile Project “, “Empty Project” ⇒ Az “Toolchains” menüpontban válassza a “Cygwin GCC” vagy a “MinGW GCC” lehetőséget. A figyelmeztető üzenetet hagyja figyelmen kívül.

2. lépés: C++ program írása

Jobb egérgombbal kattintson a projektre ⇒ Új ⇒ Forrásfájl ⇒ “Forrásfájl” menüpontba írja be a “Hello.cpp“-t. ⇒ Írja be a következő forráskódokat:

#include <iostream>using namespace std; int main() {cout << "Hello, world!" << endl;return 0;}
3. lépés: Makefile írása

Jobb egérgombbal kattintson a projektre ⇒ Új ⇒ Fájl ⇒ “Fájlnév” mezőbe írja be a “makefile“-t. ⇒ Adja meg a következő kódokat. Vegye figyelembe, hogy a behúzáshoz tabulátor (NEM szóköz) használata szükséges.

all: Hello.exe clean:rm Hello.o Hello.exe Hello.exe: Hello.og++ -g -o Hello.exe Hello.o Hello.o: Hello.cppg++ -c -g Hello.cpp
4. lépés: A projekt építése

Jobb egérgombbal kattintson a projektre ⇒ Build Project.

5. lépés: A program futtatása

Jobb egérgombbal kattintson a projektre ⇒ Run As ⇒ Local C/C++ Application.

Írjon egy makefile-t a játékprogramok egy projekt alá történő lefordításához.

Olvassa el a dokumentációt

Minimum az Eclipse “Workbench User Guide” és “C/C++ Development User Guide” című – az Eclipse “Welcome” oldalán vagy a “Help” menüben elérhető – dokumentumokat KELL átböngésznie. Ezzel sok gyötrelmes órát spórolhat meg, amikor később próbálja kitalálni, hogyan kell bizonyos dolgokat csinálni.

C/C++ programok hibakeresése az Eclipse CDT-ben

A programozásban kulcsfontosságú, hogy grafikus hibakeresőt tudjon használni a program hibakeresésére. Számtalan órát spórolhat meg azzal, hogy kitalálja, mi ment rosszul.

Szint 0: C++ program írása – Az alábbi program kiszámítja és kiírja a n (=1*2*3*...*n) faktoriálisát. A programban azonban logikai hiba van, és rossz választ ad a n=20 (“The Factorial of 20 is -2102132736” – negatív szám?!).

1234567891011121314
#include <iostream>using namespace std; int main() { int n = 20; int factorial = 1; // n! = 1*2*3...*n for (int i = 1; i <= n; i++) { factorial *= i; } cout << "The Factorial of " << n << " is " << factorial << endl; return 0;}
The Factorial of 20 is -2102132736

A program hibakereséséhez használjuk a grafikus hibakereső programot.

1. lépés: Kezdeti töréspont beállítása – A töréspont felfüggeszti a program végrehajtását, hogy megvizsgálhassuk a belső állapotokat (pl, változók értékét) a programban. A hibakereső elindítása előtt legalább egy töréspontot kell beállítania a programon belüli végrehajtás felfüggesztéséhez. Állítson be egy töréspontot a main() függvénynél a main()-t tartalmazó sor bal szélén dupla kattintással. Egy kék kör jelenik meg a bal margón, jelezve, hogy megállási pont van beállítva az adott sorban.

2. lépés: A Debugger elindítása – Jobb klikk a projektre (vagy használja a “Futtatás” menüt) ⇒ “Debug As” ⇒ “Local C/C++ Application” ⇒ válassza az “Igen” lehetőséget a “Debug” perspektívába való váltáshoz (A perspektíva a panelek egy adott elrendezése, amely megfelel egy bizonyos fejlesztési feladatnak, mint például a szerkesztés vagy a hibakeresés). A program megkezdi a végrehajtást, de a töréspontnál, azaz a main() függvénynél felfüggeszti a működését.

Az alábbi ábrán látható módon a kiemelt vonal (amelyre egy kék nyíl is mutat) jelzi a következő lépésben végrehajtandó utasítást.

3. lépés: Lépésről lépésre és a változók és kimenetek figyelése – Kattintson a “Lépésről lépésre” gombra (vagy válassza a “Futtatás” menüből a “Lépésről lépésre” lehetőséget), hogy egy lépésben végigmenjen a programon. Minden egyes lépésnél vizsgálja meg a változók értékét (a “Variable” panelen) és a programja által előállított kimeneteket (a “Console” panelen), ha vannak ilyenek. A kurzort bármelyik változóra helyezheti, hogy megvizsgálja a változó tartalmát.

A program egy lépésben történő végigjárása és a belső változók értékeinek és a kimeneteknek a megfigyelése a programok hibakeresésének végső eszköze – mivel a számítógép pontosan így futtatja a programját!

4. lépés: Töréspont, sorba futás, folytatás és befejezés – Mint említettük, a töréspont felfüggeszti a program végrehajtását, és lehetővé teszi a program belső állapotainak vizsgálatát. Ha megszakítási pontot szeretnénk beállítani egy adott utasításon, kattintsunk duplán az adott sor bal szélén (vagy válasszuk a “Megszakítási pont kapcsolása” opciót a “Futtatás” menüből).

A “Folytatás” folytatja a program végrehajtását a következő megszakítási pontig, vagy a program végéig.

A “Egy lépés” egy nagyszámú cikluson keresztül időigényes. A közvetlenül a cikluson kívüli utasításnál (pl. a fenti program 12. sora) megszakítási pontot állíthatunk be, és a “Folytatás” parancsot adhatjuk ki a ciklus befejezéséhez.

Egy másik lehetőség, hogy a kurzort egy adott utasításra helyezzük, és a “Futtatás” menüből a “Futtatás a sorig” parancsot adjuk ki a végrehajtás folytatásához az adott sorig.

A “Befejezés” parancs befejezi a hibakeresési munkamenetet. Az aktuális hibakeresési munkamenetet mindig a “Terminate” vagy a “Resume” segítségével fejezze be a program végéig.

5. lépés: Visszakapcsolás a C/C++ perspektívába – Kattintson a jobb felső sarokban található “C/C++” perspektíva ikonra, hogy a további programozáshoz visszakapcsoljon a “C/C++” perspektívába (vagy “Ablak” menü ⇒ Perspektíva megnyitása ⇒ C/C++).

Nem tudom jobban hangsúlyozni, hogy a debugger használatának elsajátítása kulcsfontosságú a programozásban. Fedezze fel a debuggerek által biztosított funkciókat.

A debugger egyéb funkciói

Változó értékének módosítása: Módosíthatja egy változó értékét egy új érték megadásával a “Variable” panelen. Ez praktikus a program viselkedésének ideiglenes módosítására, a forráskód megváltoztatása nélkül.

Step-Into és Step-Return: Egy függvény hibakereséséhez a “Step-Into” segítségével a módszer első utasításába kell lépni. A “Step-Return”-t használhatja a hívóhoz való visszatéréshez, bárhol a metóduson belül. Alternatív megoldásként beállíthat egy megállási pontot a metóduson belül.

MEGJEGYZÉS: Ha hibakeresés közben a “Nem találja a forrásfájlt a /cygdrive/c címen…” hibaüzenetet kapja, akkor be kell állítania a “/cygdrive/c” és a “c:/” közötti leképezést (feltételezve, hogy a programját a c meghajtóban tartja. Az “Ablak” ⇒ “Beállítások” ⇒ “C/C++” ⇒ “Debug” ⇒ “Common Source Lookup Path”, válassza a “Add” ⇒ “Path Mapping” lehetőséget.

Tippek & Trükkök

Az Eclipse for Java tippjei & Trükkök az Eclipse használatával kapcsolatos általános tippekért.

C/C++ szoftverfejlesztés a GCC használatával

  1. A projekt építéséhez használt parancsokat az Eclipse CDT-ben a “<workspace>\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log” címen találja.
  2. include-paths, library-paths és libraries beállítása: A program építése során a fordítónak szüksége van a fejlécfájlokra a forráskódok lefordításához; a linkelőnek szüksége van a könyvtárakra a külső hivatkozások feloldásához. A fordító a #include direktívákban megadott fejléceket az “include-paths”-ekben keresi meg. A linkelő a “library-paths”-ben keresi a program linkeléséhez szükséges “könyvtárakat”. A GCC-ben az include-path a -Idir opcióval vagy a CPATH környezeti változóval adható meg. A library-path a -Ldir opcióval, vagy a LIBRARY_PATH környezeti változóval adható meg. A könyvtár libxxx.a a -lxxx opcióval ('l' kisbetű, lib előtag és .a kiterjesztés nélkül) adható meg.
    Az Eclipse CDT-ben az include-útvonalakat, a könyvtár-útvonalakat és a könyvtárakat a projektre jobb gombbal kattintva adhatjuk meg ⇒ Tulajdonságok ⇒ C/C++ Általános ⇒ Útvonalak és szimbólumok ⇒ “Includes”, “Library Paths” és “Libraries” lapok alatt. A beállítások csak a kiválasztott projektre vonatkoznak.
    Az include elérési utak és a könyvtárak elérési útvonalainak beállításához az összes projektre vonatkozóan állítsa be a CPATH és LIBRARY_PATH környezeti változókat. Az Eclipse-ben válassza az “Ablak” ⇒ Beállítások ⇒ C/C++ ⇒ Építés ⇒ Környezet.
    Alternatívaként másolja a fejléceket és a könyvtárakat a rendszer könyvtáraiba, és elhagyhatja az include-ösvényeket és a könyvtár-ösvényeket.
  3. OpenGL with GLUT: Cygwin esetén telepíteni kell a gcc, g++, gdb, make (a Devel kategóriában) és az opengl, freeglut (a graphics kategóriában). A gl.h, glu.h, glut.h fejléceket a $cygwin\usr\include\w32api\GL-ben kell tartani. Használja a #include <GL/gl__.h>-t a fejlécek felvételéhez. A libopengl32.a libglu32.a és libglut32.a könyvtárakat a $cygwin\lib\w32api-ban tartjuk. Ezen könyvtárak megadásához a linkelés során használja a -lopengl32 -lglu32 -lglut32 opciókat (a lib előtag és a .a kiterjesztés nélkül).
  4. OpenGL SDL-lel: Az SDL letöltése a http://www.libsdl.org-ból. Válassza a Development Libraries ⇒ win32 ⇒ mingw32 ⇒ Unzip. Másolja a SDL fejléc könyvtárat (include alatt) a $cygwin\usr\include\w32api könyvtárba; a lib könyvtárfájlokat másolja a $cygwin\lib\w32api könyvtárba; a SDL.dll futásidejű könyvtárat (bin alatt) másolja a Windows/System32 könyvtárba. A programodba építsd be ezt a két fejlécet: #include <SDL/sdl.h> és #include <SDL/sdl_opengl.h>. A linkeléshez add hozzá ezeket a könyvtárakat: -lSDL -lSDLmain.
  5. #pragma Comment direktíva: A pragma comment direktívát, pl. #pragma comment(lib, "opengl32.lib"), gyakran használják egy adott könyvtár bevonására (ugyanúgy, mint a -l opciót). Ez a rendszerfüggő direktíva a Windows fordítóban működik, de a GCC-ben NEM.
  6. Hiba “multiple target patterns”: Probléma van a GNU make-vel (a $Cygwin\bin\make.exe-nál). Helyettesítve ezzel a másolattal @ http://www.cmake.org/files/cygwin/make.exe.
  7. fflush(stdout): A gcc könyvtár pufferelt I/O-t használ (a C specifikációnak megfelelően). A kimenet csak az újsor karakter után kerül kiírásra a kimeneti folyamba. A kimenetet fflush().
  8. A projekt neve nem tartalmazhatja a “setup” szót: Ha a C/C++ projektet olyan névvel nevezi el, amely tartalmazza a “setup” szót, akkor az eredményül kapott “*setup*.exe” kiváltja az UAC (User Authorization Control) programot, és futtatásához rendszergazdai jog szükséges. (Ez nekem néhány órába telt, mire rájöttem! Próbálja meg átnevezni a “hello.exe“-t “mysetup.exe“-re.)

File I/O az Eclipse-ben

Hivatkozzon az Eclipse-re a Java File IO-hoz.

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress