Skip to content

Archives

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Categories

  • Geen categorieën
Trend RepositoryArticles and guides
Articles

Eclipse 4.3 (Kepler) voor C/C++ programmeren

On november 9, 2021 by admin

Eclipse is een open-source Integrated Development Environment (IDE) ondersteund door IBM. De moeder site is @ www.eclipse.org. Eclipse is populair voor de ontwikkeling van Java-projecten. Het ondersteunt ook C/C++, PHP, Python, Perl, en andere web project ontwikkelingen via uitbreidbare plug-ins. Eclipse is cross-platform en draait onder Windows, Linux en Mac OS.

  • Hoe installeer je Eclipse C/C++ Development Tool (CDT) 8.1.2 voor Eclipse 4.2.2 (Juno)
  • Het schrijven van uw eerste C/C++ programma in Eclipse
  • C++ programma
  • C Programma
  • C++ Programma met Makefile
  • Lees de documentatie
  • Debuggen van C/C++ programma’s in Eclipse CDT
  • Tips & Tricks
  • C/C++ Software Ontwikkeling met behulp van GCC
  • File I/O in Eclipse

Hoe installeer je Eclipse C/C++ Development Tool (CDT) 8.1.2 voor Eclipse 4.2.2 (Juno)

Stap 0: Installeer MinGW GCC of Cygwin GCC

Om Eclipse voor C/C++ programmering te gebruiken, heb je een C/C++ compiler nodig. Op Windows, kunt u of MinGW GCC of Cygwin GCC installeren. Kies MinGW als je niet zeker bent, omdat MinGW lichter en gemakkelijker te installeren is, maar minder mogelijkheden heeft.

  1. MinGW GCC: Lees “Hoe MinGW te installeren”.
  2. Cygwin GCC: Lees “Hoe Cygwin te installeren”. Zorg ervoor dat u “gcc“, “g++“, “gdb“, en “make” pakketten selecteert onder de “Devel” (Development) categorie – deze pakketten maken geen deel uit van de standaardinstallatie.
Stap 1: Installeer Eclipse C/C++ Development Tool (CDT)

Twee manieren om CDT te installeren, afhankelijk van of u al eerder een Eclipse hebt geïnstalleerd:

  1. Als u “Eclipse for Java Developers” of andere Eclipse-pakketten al hebt geïnstalleerd, zou u de CDT-plug-in als volgt kunnen installeren:
    Lanceer Eclipse ⇒ Help ⇒ Install New Software ⇒ In het veld “Work with” trekt u het drop-downmenu naar beneden en selecteert u “Kepler – http://download.eclipse.org/releases/kepler” (of juno voor Eclipse 4.2; of helios voor Eclipse 3.7).
    In “Name” box, expand “Programming Language” node ⇒ Check “C/C++ Development Tools” ⇒ “Next” ⇒ … ⇒ “Finish”.
  2. Als u geen Eclipse-pakket hebt geïnstalleerd, kunt u “Eclipse IDE for C/C++ Developers” downloaden van http://www.eclipse.org/downloads, en het gedownloade bestand uitpakken in een directory naar keuze.
Stap 2: Configuratie

U hoeft GEEN configuratie uit te voeren, zolang de Cygwin of MinGW binaries zijn opgenomen in de PATH omgevingsvariabele. CDT doorzoekt de PATH om de C/C++ compilers te ontdekken.

Het schrijven van uw eerste C/C++ programma in Eclipse

C++ programma

Stap 0: Start Eclipse
  1. Start Eclipse door “eclipse.exe” in de geïnstalleerde directory van Eclipse uit te voeren.
  2. Kies een geschikte directory voor uw werkruimte (d.w.z, waar u uw werk wilt opslaan).
  3. Als het “welkom” scherm verschijnt, sluit het door op de “close” knop te klikken.
Stap 1: Maak een nieuw C++ Project

Voor elke C++ applicatie, moet u een project maken om alle broncodes, object bestanden, uitvoerbare bestanden, en relevante bronnen te bewaren.

Om een nieuw C++ project te maken:

  1. Kies “File” menu ⇒ “New” ⇒ Project… ⇒ C/C++ ⇒ C++ project.
  2. Het “C++ Project” dialoogvenster verschijnt.
    1. In “Project name” veld, voer “FirstProject“.
    2. In “Project Types” box, selecteer “Executable” ⇒ “Empty Project”.
    3. In “Toolchains” box, kies uw compiler, bijv, “Cygwin GCC” of “MinGW GCC” ⇒ Next.
  3. Het dialoogvenster “Select Configurations” verschijnt. Selecteer zowel “Debug” als “Release” ⇒ Finish.
Step 2: Schrijf een Hello-world C++ Program
  1. In de “Project Explorer” (meest linkse paneel) ⇒ Klik met de rechter muisknop op “FirstProject” (of gebruik het “File” menu) ⇒ New ⇒ Source File.
  2. Het “New Source File” dialoogvenster verschijnt.
    1. In het veld “Bronbestand” voert u “Hello.cpp” in.
    2. Klik op “Voltooien”.
  3. Het bronbestand “Hello.cpp” wordt geopend op het editor paneel (dubbelklik op “test.cpp” om te openen indien nodig). Voer de volgende codes in:
    #include <iostream>using namespace std; int main() { cout << "Hello, world!" << endl; return 0;}
Als “Unresolved Inclusion Error”

Als de fout “unresolved inclusion” verschijnt naast #include statement, zijn de “include paths for headers” niet goed ingesteld. Selecteer “Project” menu ⇒ Properties ⇒ C/C++ General ⇒ Paths and Symbols ⇒ In “Includes” tab:

Voor Cygwin GCC:

  1. “Voeg” de volgende directories toe aan “GNU C”, waar $CYGWIN_HOME uw Cygwin geïnstalleerde directory is:
    • $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. “Voeg” de volgende directories toe aan “GNU C++”, waar $CYGWIN_HOME de directory is die op Cygwin is geïnstalleerd:
    • $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

Voor MinGW GCC:

  1. “Voeg” de volgende directories toe aan “GNU C”, waarbij $MINGW_HOME uw MinGW installatiedirectory is:
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include
    • $MINGW_HOME\include
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
  2. “Voeg” de volgende directories toe aan “GNU C++”, waar $MINGW_HOME de directory is die op Cygwin is geïnstalleerd:
    • $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

NOTE: Om de header paden te vinden, kunt u een zoekopdracht doen op headers zoals “stdio.h” (voor C) en “iostream” (voor C++) onder de Cygwin of MinGW geïnstalleerde directory.

Opmerking: Als u “error while loading shared libraries” tegenkomt tijdens het linken. Installeer “libmpfr4” in cygwin.
Stap 3: Compile/Build

Rechter-klik op de “FirstProject” (of gebruik het “Project” menu) ⇒ kies “Build Project” om het programma te compileren en te linken.

Step 4: Run

Om het programma uit te voeren, klik met de rechtermuisknop op de “FirstProject” (of waar dan ook op de bron “test.cpp“, of selecteer het “Run” menu) ⇒ Run As ⇒ Local C/C++ Application ⇒ (Indien gevraagd, kies Cygwin’s gdb debugger) ⇒ De uitvoer “Hello, world!” verschijnt op het “Console” paneel.

NOTE: U moet een nieuw C++ project maken voor ELK van uw programmeerproblemen. Dit is rommelig voor het schrijven van speelgoed programma’s!

C Programma

Volg dezelfde stappen als hierboven. Maak een “C Project” (in plaats van een “C++ Project”). Probeer het volgende Hello-world programma (genaamd “Hello.c“).

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

C++ Programma met Makefile

In de vorige voorbeelden gebruiken we zogenaamde managed-make waarbij Eclipse automatisch een makefile genereert om het programma te bouwen. We kunnen er ook voor kiezen om onze eigen makefile te schrijven voor volledige controle over het bouwproces.

Stap 1: Maak een C++ Makefile Project

Vanuit het “File” menu ⇒ New ⇒ Project… ⇒ C/C++ ⇒ C++ project ⇒ In “Project name”, voer “HelloCppMakefile” in ⇒ In “Project type”, kies “Makefile Project “, “Empty Project” ⇒ In “Toolchains”, kies “Cygwin GCC” of “MinGW GCC”. Negeer de waarschuwing.

Stap 2: Schrijf een C++ programma

Rechter muisklik op het project ⇒ Nieuw ⇒ Bronbestand ⇒ In “Bronbestand”, voer “Hello.cpp” in. ⇒ Voer de volgende broncodes in:

#include <iostream>using namespace std; int main() {cout << "Hello, world!" << endl;return 0;}
Stap 3: Schrijf een Makefile

Rechter muisklik op het project ⇒ Nieuw ⇒ Bestand ⇒ Voer in “Bestandsnaam”, “makefile” in. ⇒ Voer de volgende codes in. Let op dat u een Tab (GEEN Spaties) gebruikt voor het inspringen.

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
Stap 4: Bouw het project

Rechter muisklik op het project ⇒ Bouw project.

Stap 5: Voer het programma uit

Rechter muisklik op het project ⇒ Voer uit als ⇒ Lokale C/C++ toepassing.

Schrijf een makefile om speelgoedprogramma’s onder één project te compileren.

Lees de documentatie

U ZOU op zijn minst de “Workbench User Guide” en de “C/C++ Development User Guide” van Eclipse MOETEN doorbladeren – toegankelijk via de “Welcome” pagina of het “Help” menu van Eclipse. Dit zal je vele kwellende uren besparen om uit te zoeken hoe je sommige dingen later moet doen.

Debuggen van C/C++ programma’s in Eclipse CDT

Het kunnen gebruiken van een grafische debugger om programma’s te debuggen is cruciaal in programmeren. Het kan je ontelbare uren besparen met gissen naar wat er fout ging.

Stap 0: Schrijf een C++ Programma – Het volgende programma berekent en print de factoriaal van n (=1*2*3*...*n). Het programma heeft echter een logische fout en geeft een verkeerd antwoord voor n=20 (“The Factorial of 20 is -2102132736” – een negatief getal?!).

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

Laten we de grafische debugger gebruiken om het programma te debuggen.

Stap 1: Stel een initieel onderbrekingspunt in – Een onderbrekingspunt onderbreekt de programma-uitvoering, zodat u de interne toestanden (b.v, waarde van variabelen) van het programma. Voordat u de debugger start, moet u ten minste één onderbrekingspunt instellen om de uitvoering binnen het programma te onderbreken. Stel een breekpunt in bij functie main() door te dubbelklikken op de linker-margin van de regel die main() bevat. Er verschijnt een blauwe cirkel in de linkermarge om aan te geven dat op die regel een breekpunt is ingesteld.

Stap 2: Debugger starten – Klik met de rechtermuisknop op het project (of gebruik het menu “Uitvoeren”) ⇒ “Debug als” ⇒ “Lokale C/C++ toepassing” ⇒ kies “Ja” om over te schakelen naar het “Debug”-perspectief (Een perspectief is een bepaalde rangschikking van panelen die past bij een bepaalde ontwikkelingstaak, zoals bewerken of debuggen). Het programma begint met de uitvoering, maar onderbreekt de werking bij het breekpunt, d.w.z. de main()-functie.

Zoals in het volgende diagram wordt geïllustreerd, geeft de gemarkeerde regel (ook aangegeven door een blauwe pijl) het statement aan dat in de volgende stap moet worden uitgevoerd.

Stap 3: Step-Over en bekijk de variabelen en outputs – Klik op de knop “Step Over” (of selecteer “Step Over” in het menu “Run”) om in één stap door uw programma te gaan. Bekijk bij elke stap de waarde van de variabelen (in het paneel “Variabelen”) en de outputs van uw programma (in het paneel “Console”), indien aanwezig. U kunt ook uw cursor op een variabele plaatsen om de inhoud van de variabele te inspecteren.

Single-stepping door het programma en het bekijken van de waarden van interne variabelen en de geproduceerde outputs is het ultieme middel in het debuggen van programma’s – omdat het precies is hoe de computer uw programma uitvoert!

Stap 4: Breakpoint, Run-To-Line, Hervatten en Beëindigen – Zoals vermeld, onderbreekt een breakpoint de programma-uitvoering en laat u de interne toestanden van het programma onderzoeken. Om een onderbrekingspunt in te stellen op een bepaald statement, dubbelklikt u op de linkermarge van die regel (of selecteert u “Toggle Breakpoint” in het menu “Run”).

“Resume” zet de programma-uitvoering voort, tot het volgende onderbrekingspunt, of tot het einde van het programma.

“Single-step” door een lus met een grote telling is tijdrovend. U kunt een onderbrekingspunt instellen op het statement direct buiten de lus (b.v., Lijn 12 van het bovenstaande programma), en “Resume” uitgeven om de lus te voltooien.

Als alternatief kunt u de cursor op een bepaald statement plaatsen, en “Run-To-Line” uitgeven vanuit het “Run” menu om de uitvoering tot aan de regel voort te zetten.

“Terminate” beëindigt de debug-sessie. Beëindig altijd uw huidige debug-sessie met “Terminate” of “Resume” tot het einde van het programma.

Stap 5: Terugschakelen naar C/C++ perspectief – Klik op het “C/C++” perspectief icoon in de rechter bovenhoek om terug te schakelen naar het “C/C++” perspectief voor verder programmeren (of “Venster” menu ⇒ Open Perspectief ⇒ C/C++).

Ik kan niet meer benadrukken dat het beheersen van het gebruik van de debugger van cruciaal belang is bij het programmeren. Verken de mogelijkheden van de debuggers.

Andere functies van de debugger

Wijzig de waarde van een variabele: U kunt de waarde van een variabele wijzigen door een nieuwe waarde in te voeren in het paneel “Variabele”. Dit is handig om tijdelijk het gedrag van een programma aan te passen, zonder de broncode te veranderen.

Step-Into en Step-Return: Om een functie te debuggen, moet je “Step-Into” gebruiken om in het eerste statement van de methode te stappen. Je kunt “Step-Return” gebruiken om terug te keren naar de aanroeper, waar dan ook in de methode. Als alternatief kunt u een breekpunt binnen een methode instellen.

NOTE: Als u tijdens het debuggen de foutmelding “Can’t find a source file at /cygdrive/c…” krijgt, moet u een mapping configureren tussen “/cygdrive/c” en “c:/” (ervan uitgaande dat uw programma in station c wordt bewaard. ⇒ “Debug” ⇒ “Common Source Lookup Path”, selecteer “Add” ⇒ “Path Mapping”.

Tips & Tricks

Lees Eclipse voor Java’s Tips & Tricks voor algemene tips bij het gebruik van Eclipse.

C/C++ Software Ontwikkeling met behulp van GCC

  1. U kunt de commando’s vinden die in Eclipse CDT worden gebruikt voor het bouwen van het project bij “<workspace>\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log“.
  2. Het instellen van include-paths, library-paths, en libraries: Bij het bouwen van het programma heeft de compiler de header-bestanden nodig om de broncodes te compileren; de linker heeft de bibliotheken nodig om externe verwijzingen op te lossen. De compiler zoekt in de “include-paths” naar de headers die in #include directives zijn gespecificeerd. De linker zoekt in de “library-paths” naar de “libraries” die nodig zijn om het programma te linken. In GCC wordt het include-pad gespecificeerd via de -Idir optie of omgevingsvariabele CPATH. Het bibliotheek-pad wordt opgegeven via de optie -Ldir, of omgevingsvariabele LIBRARY_PATH. De library libxxx.a wordt gespecificeerd via -lxxx optie (kleine letter 'l', zonder het voorvoegsel lib en .a extensie).
    In Eclipse CDT, kunt u de include-paden, library-paden en bibliotheken instellen door rechts te klikken op het project ⇒ Properties ⇒ C/C++ General ⇒ Paths and Symbols ⇒ Onder tabs “Includes”, “Library Paths” en “Libraries”. De instellingen zijn alleen van toepassing op het geselecteerde project.
    Om de include paden en bibliotheek paden voor alle projecten in te stellen, stel de omgevingsvariabelen CPATH en LIBRARY_PATH in. In Eclipse, kies “Window” ⇒ Preferences ⇒ C/C++ ⇒ Build ⇒ Environment.
    Alternatief, kopieer de headers en libraries naar systeem directories, en u kunt de include-paths en library-paths weglaten.
  3. OpenGL met GLUT: Voor Cygwin, moet je gcc, g++, gdb, make (onder Devel categorie) en opengl, freeglut (onder graphics categorie) installeren. De headers gl.h, glu.h, glut.h worden bewaard in $cygwin\usr\include\w32api\GL. Gebruik #include <GL/gl__.h> om de headers op te nemen. De bibliotheken libopengl32.a libglu32.a en libglut32.a worden bewaard in $cygwin\lib\w32api. Om deze bibliotheken te specificeren bij het linken, gebruikt u -lopengl32 -lglu32 -lglut32 opties (zonder de lib prefix en .a extensie).
  4. OpenGL met SDL: Download SDL van http://www.libsdl.org. Kies Development Libraries ⇒ win32 ⇒ mingw32 ⇒ Unzip. Kopieer de headers directory SDL (onder include) naar $cygwin\usr\include\w32api; kopieer alle bibliotheek bestanden in lib naar $cygwin\lib\w32api; kopieer de run-time library SDL.dll (onder bin) naar Windows/System32. Voeg in uw programma de volgende twee headers toe: #include <SDL/sdl.h> en #include <SDL/sdl_opengl.h>. Voor het linken, voeg deze bibliotheken toe: -lSDL -lSDLmain.
  5. #pragma Comment Directive: pragma comment directive, bijvoorbeeld #pragma comment(lib, "opengl32.lib"), wordt vaak gebruikt om een bepaalde bibliotheek op te nemen (hetzelfde als -l optie). Deze systeem-afhankelijke directive werkt onder Windows’s compiler, maar NIET in GCC.
  6. Fout “multiple target patterns”: Er is een probleem met GNU make (bij $Cygwin\bin\make.exe). Vervangen door deze kopie @ http://www.cmake.org/files/cygwin/make.exe.
  7. fflush(stdout): De gcc bibliotheek gebruikt gebufferde I/O (in overeenstemming met de C Specificatie). Uitvoer wordt alleen weggeschreven naar de uitvoer stream na een newline karakter. U kunt de uitvoer doorspoelen met een fflush().
  8. Projectnaam mag niet het woord “setup” bevatten: Als u uw C/C++ project een naam geeft die het woord “setup” bevat, dan zal het resulterende “*setup*.exe” UAC (User Authorization Control) triggeren en administrator recht vereisen om te kunnen draaien. (Dit kostte me een paar uur om uit te vinden! Probeer een “hello.exe” te hernoemen naar “mysetup.exe“.)

File I/O in Eclipse

Refereer naar Eclipse voor Java’s File IO.

Geef een antwoord Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Archieven

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • WordPress.org
  • 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