Skip to content

Archives

  • ianuarie 2022
  • decembrie 2021
  • noiembrie 2021
  • octombrie 2021
  • septembrie 2021

Categories

  • Nicio categorie
Trend RepositoryArticles and guides
Articles

Eclipse 4.3 (Kepler) pentru programare C/C++

On noiembrie 9, 2021 by admin

Eclipse este un mediu de dezvoltare integrat (IDE) open-source susținut de IBM. Site-ul mamă este @ www.eclipse.org. Eclipse este popular pentru dezvoltarea de proiecte Java. Suportă, de asemenea, C/C++, PHP, Python, Perl și alte dezvoltări de proiecte web prin intermediul unor plug-in-uri extensibile. Eclipse este cross-platform și rulează sub Windows, Linux și Mac OS.

  • Cum se instalează Eclipse C/C++ Development Tool (CDT) 8.1.2 pentru Eclipse 4.2.2 (Juno)
  • Scrierea primului program C/C++ în Eclipse
  • Program C++
  • Program C
  • Program C++ cu Makefile
  • Citiți documentația
  • Debugging C/C++ Programs in Eclipse CDT
  • Tips & Tricks
  • C/C++ Software Development Using GCC
  • File I/O în Eclipse

Cum se instalează Eclipse C/C++ Development Tool (CDT) 8.1.2 pentru Eclipse 4.2.2 (Juno)

Pasul 0: Instalați MinGW GCC sau Cygwin GCC

Pentru a utiliza Eclipse pentru programarea C/C++, aveți nevoie de un compilator C/C++. Pe Windows, ați putea instala fie MinGW GCC, fie Cygwin GCC. Alegeți MinGW dacă nu sunteți sigur, deoarece MinGW este mai ușor și mai ușor de instalat, dar având mai puține caracteristici.

  1. MinGW GCC: Citiți „Cum se instalează MinGW”.
  2. Cygwin GCC: Citiți „Cum se instalează Cygwin”. Asigurați-vă că ați selectat pachetele „gcc„, „g++„, „gdb” și „make” în cadrul pachetului „Devel„. (Development) (Dezvoltare) – aceste pachete nu fac parte din instalarea implicită.
Pasul 1: Instalați Eclipse C/C++ Development Tool (CDT)

Două moduri de a instala CDT, în funcție de faptul dacă ați instalat anterior un Eclipse:

  1. Dacă ați instalat deja „Eclipse for Java Developers” sau alte pachete Eclipse, ați putea instala plug-in-ul CDT după cum urmează:
    Lansați Eclipse ⇒ Help ⇒ Install New Software ⇒ În câmpul „Work with”, trageți în jos meniul derulant și selectați „Kepler – http://download.eclipse.org/releases/kepler” (sau juno pentru Eclipse 4.2; sau helios pentru Eclipse 3.7).
    În caseta „Name”, extindeți nodul „Programming Language” ⇒ Bifați „C/C++ Development Tools” ⇒ „Next” ⇒ … ⇒ „Finish”.
  2. Dacă nu ați instalat nici un pachet Eclipse, puteți descărca „Eclipse IDE for C/C++ Developers” de la http://www.eclipse.org/downloads, și dezarhivați fișierul descărcat într-un director la alegere.
Pasul 2: Configurație

NU trebuie să faceți nici o configurare, atâta timp cât binarele Cygwin sau MinGW sunt incluse în variabila de mediu . CDT caută în pentru a descoperi compilatoarele C/C++.

Scrierea primului program C/C++ în Eclipse

Program C++

Etapa 0: Lansarea Eclipse
  1. Porniți Eclipse rulând „eclipse.exe” în directorul Eclipse instalat.
  2. Alegeți un director adecvat pentru spațiul dvs. de lucru (de ex, unde doriți să vă salvați lucrările).
  3. Dacă apare ecranul de „bun venit”, închideți-l făcând clic pe butonul „close”.
Pasul 1: Creați un nou proiect C++

Pentru fiecare aplicație C++, trebuie să creați un proiect pentru a păstra toate codurile sursă, fișierele obiect, fișierele executabile și resursele relevante.

Pentru a crea un nou proiect C++:

  1. Alegeți meniul „File” ⇒ „New” ⇒ Project… ⇒ C/C++ ⇒ Proiect C++.
  2. Se deschide fereastra de dialog „C++ Project”.
    1. În câmpul „Project name”, introduceți „FirstProject„.
    2. În caseta „Project Types”, selectați „Executable” ⇒ „Empty Project”.
    3. În caseta „Toolchains”, alegeți compilatorul dumneavoastră, de ex, „Cygwin GCC” sau „MinGW GCC” ⇒ Next.
  3. Apare caseta de dialog „Select Configurations”. Selectați atât „Debug”, cât și „Release” ⇒ Finish.
Step 2: Write a Hello-world C++ Program
  1. În „Project Explorer” (panoul cel mai din stânga) ⇒ Faceți clic dreapta pe „FirstProject” (sau folosiți meniul „File”) ⇒ New ⇒ Source File.
  2. Se afișează fereastra de dialog „New Source File”.
    1. În câmpul „Source file”, introduceți „Hello.cpp„.
    2. Clic pe „Finish”.
  3. Fisierul sursă „Hello.cpp” se deschide în panoul editorului (faceți dublu clic pe „test.cpp” pentru a-l deschide, dacă este necesar). Introduceți următoarele coduri:
    #include <iostream>using namespace std; int main() { cout << "Hello, world!" << endl; return 0;}
Dacă apare eroarea „Unresolved Inclusion Error”

Dacă apare eroarea „unresolved inclusion” în dreptul instrucțiunii #include, înseamnă că „include paths for headers” nu sunt setate corect. Selectați meniul „Project” ⇒ Properties ⇒ C/C++ General ⇒ Paths and Symbols ⇒ În fila „Includes”:

Pentru Cygwin GCC:

  1. „Adăugați” următoarele directoare la „GNU C”, unde $CYGWIN_HOME este directorul dumneavoastră Cygwin instalat:
    • $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. „Adăugați” următoarele directoare la „GNU C++”, unde $CYGWIN_HOME este directorul dumneavoastră Cygwin instalat:
    • $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

Pentru MinGW GCC:

  1. „Adăugați” următoarele directoare la „GNU C”, unde $MINGW_HOME este directorul dvs. instalat pentru MinGW:
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include
    • $MINGW_HOME\include
    • $MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
  2. „Adăugați” următoarele directoare la „GNU C++”, unde $MINGW_HOME este directorul dvs. instalat Cygwin:
    • $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

NOTA: Pentru a găsi căile de acces la antete, puteți face o căutare pe antete, cum ar fi „stdio.h” (pentru C) și „iostream” (pentru C++) sub directorul instalat Cygwin sau MinGW.

Notă: Dacă în timpul legăturii întâlniți „error while loading shared libraries” (eroare la încărcarea bibliotecilor partajate). Instalați „libmpfr4” în cygwin.
Pasul 3: Compile/Build

Click dreapta pe „FirstProject” (sau folosiți meniul „Project”) ⇒ alegeți „Build Project” pentru a compila și lega programul.

Etapa 4: Run

Pentru a rula programul, faceți clic dreapta pe „FirstProject” (sau oriunde pe sursa „test.cpp„, sau selectați meniul „Run”) ⇒ Run As ⇒ Local C/C++ Application ⇒ (Dacă vi se cere, alegeți depanatorul gdb de la Cygwin) ⇒ Pe panoul „Console” apare ieșirea „Hello, world!”.

NOTA: Trebuie să creați un nou proiect C++ pentru fiecare dintre problemele de programare. Acest lucru este dezordonat pentru a scrie programe de jucărie!

Program C

Să urmați aceiași pași ca mai sus. Creați un „Proiect C” (în loc de „Proiect C++”). Încercați următorul program Hello-world (numit „Hello.c„).

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

Program C++ cu Makefile

În exemplele anterioare, am folosit așa-numitul managed-make în care Eclipse a generat automat un makefile pentru a construi programul. Putem alege, de asemenea, să ne scriem propriul makefile pentru un control complet al procesului de construire.

Pasul 1: Crearea unui proiect C++ Makefile

Din meniul „File” ⇒ New ⇒ Project… ⇒ C/C++ ⇒ Proiect C++ ⇒ În „Project name”, introduceți „HelloCppMakefile” ⇒ În „Project type”, alegeți „Makefile Project „, „Empty Project” ⇒ În „Toolchains”, alegeți „Cygwin GCC” sau „MinGW GCC”. Ignorați mesajul de avertizare.

Pasul 2: Scrieți un program C++

Click dreapta pe proiect ⇒ New ⇒ Source File ⇒ În „Source file”, introduceți „Hello.cpp” ⇒ Introduceți următoarele coduri sursă:

#include <iostream>using namespace std; int main() {cout << "Hello, world!" << endl;return 0;}
Pasul 3: Scrieți un fișier Makefile

Click dreapta pe proiect ⇒ New ⇒ File ⇒ În „File name”, introduceți „makefile” ⇒ Introduceți următoarele coduri. Rețineți că trebuie să folosiți o tabulație (NU spații) pentru indentare.

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
Pasul 4: Construiți proiectul

Click dreapta pe proiect ⇒ Build Project.

Pasul 5: Rulați programul

Click dreapta pe proiect ⇒ Run As ⇒ Local C/C++ Application.

Scrieți un fișier makefile pentru a compila programele-jucărie în cadrul unui singur proiect.

Citiți documentația

A minimum, TREBUIE să parcurgeți „Workbench User Guide” și „C/C++ Development User Guide” ale Eclipse – accesibile prin pagina „Welcome” sau meniul „Help” al Eclipse. Acest lucru vă va scuti de multe ore chinuitoare încercând să vă dați seama cum să faceți unele lucruri mai târziu.

Debugging C/C++ Programs in Eclipse CDT

Capacitatea de a utiliza un depanator grafic pentru a depana programul este crucială în programare. Vă poate salva nenumărate ore de ghicit ce nu a mers bine.

Pasul 0: Scrieți un program C++ – Următorul program calculează și tipărește factorialul lui n (=1*2*3*...*n). Programul are însă o eroare logică și produce un răspuns greșit pentru n=20 („The Factorial of 20 is -2102132736” – un număr negativ?!).

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

Să folosim depanatorul grafic pentru a depana programul.

Pasul 1: Setați un punct de întrerupere inițial – Un punct de întrerupere suspendă execuția programului pentru ca dumneavoastră să examinați stările interne (de ex, valoarea variabilelor) ale programului. Înainte de a porni depanatorul, trebuie să setați cel puțin un punct de întrerupere pentru a suspenda execuția în interiorul programului. Setați un punct de întrerupere la funcția main() făcând dublu clic pe marginea din stânga a liniei care conține main(). Un cerc albastru apare în marja stângă, indicând că un punct de întrerupere este setat la acea linie.

Pasul 2: Porniți Debuggerul – Faceți clic dreapta pe proiect (sau utilizați meniul „Run”) ⇒ „Debug As” ⇒ „Local C/C++ Application” ⇒ alegeți „Yes” pentru a trece în perspectiva „Debug” (O perspectivă este o anumită dispunere a panourilor pentru a se potrivi unei anumite sarcini de dezvoltare, cum ar fi editarea sau depanarea). Programul începe execuția, dar își suspendă funcționarea la punctul de întrerupere, adică la funcția main().

După cum este ilustrat în următoarea diagramă, linia evidențiată (indicată și de o săgeată albastră) indică instrucțiunea care urmează să fie executată în pasul următor.

Pasul 3: Step-Over and Watch the Variables and Outputs – Faceți clic pe butonul „Step Over” (sau selectați „Step Over” din meniul „Run”) pentru a parcurge programul într-un singur pas. La fiecare dintre pași, examinați valoarea variabilelor (în panoul „Variable”) și ieșirile produse de programul dumneavoastră (în panoul „Console”), dacă este cazul. De asemenea, puteți plasa cursorul pe orice variabilă pentru a inspecta conținutul variabilei.

Pasul unic prin program și observarea valorilor variabilelor interne și a ieșirilor produse este mijlocul suprem în depanarea programelor – deoarece este exact modul în care calculatorul execută programul dumneavoastră!

Pasul 4: Breakpoint, Run-To-Line, Resume și Terminate – După cum am menționat, un breakpoint suspendă execuția programului și vă permite să examinați stările interne ale programului. Pentru a seta un punct de întrerupere pe o anumită instrucțiune, faceți dublu clic pe marginea stângă a liniei respective (sau selectați „Toggle Breakpoint” din meniul „Run”).

„Resume” continuă execuția programului, până la următorul punct de întrerupere, sau până la sfârșitul programului.

„Single-step” parcurgerea unei bucle cu un număr mare consumă mult timp. Ați putea seta un punct de întrerupere la instrucțiunea aflată imediat în afara buclei (de exemplu, linia 12 din programul de mai sus) și să emiteți „Resume” pentru a finaliza bucla.

Alternativ, puteți plasa cursorul pe o anumită instrucțiune și să emiteți „Run-To-Line” din meniul „Run” pentru a continua execuția până la linia respectivă.

„Terminate” încheie sesiunea de depanare. Întotdeauna încheiați sesiunea de depanare curentă folosind „Terminate” sau „Resume” până la sfârșitul programului.

Pasul 5: Revenirea la perspectiva C/C++ – Faceți clic pe pictograma perspectivei „C/C++” din colțul din dreapta sus pentru a reveni la perspectiva „C/C++” pentru continuarea programării (sau meniul „Window” ⇒ Open Perspective ⇒ C/C++).

Nu pot sublinia mai mult că stăpânirea utilizării depanatorului este crucială în programare. Explorați funcțiile oferite de depanatoare.

Alte funcții ale depanatorului

Modificați valoarea unei variabile: Puteți modifica valoarea unei variabile prin introducerea unei noi valori în panoul „Variable”. Acest lucru este la îndemână pentru modificarea temporară a comportamentului unui program, fără a modifica codul sursă.

Step-Into și Step-Return: Pentru a depana o funcție, trebuie să utilizați „Step-Into” pentru a intra în prima declarație a metodei. Puteți folosi „Step-Return” pentru a vă întoarce la apelant, oriunde în cadrul metodei. Alternativ, ați putea seta un punct de întrerupere în interiorul unei metode.

NOTA: Dacă primiți mesajul de eroare „Can’t find a source file at /cygdrive/c…” în timpul depanării, trebuie să configurați o corespondență între „/cygdrive/c” și „c:/” (presupunând că programul dvs. este păstrat în unitatea c. Din „Window” ⇒ „Preferences” ⇒ „C/C++” ⇒ „Debug” ⇒ „Common Source Lookup Path”, selectați „Add” ⇒ „Path Mapping”.

Tips & Tricks

Citiți Tips & Tricks de la Eclipse for Java pentru sfaturi generale de utilizare a Eclipse.

C/C++ Software Development Using GCC

  1. Puteți găsi comenzile utilizate în Eclipse CDT pentru construirea proiectului la „<workspace>\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log„.
  2. Setarea include-paths, library-paths și a bibliotecilor: La construirea programului, compilatorul are nevoie de fișierele antet pentru a compila codurile sursă; linkerul are nevoie de biblioteci pentru a rezolva referințele externe. Compilatorul caută în „include-paths” antetele specificate în directivele #include. Linkerul caută în „library-paths” pentru „bibliotecile” necesare pentru a lega programul. În GCC, „include-path” este specificat prin opțiunea -Idir sau prin variabila de mediu CPATH. Library-path este specificat prin opțiunea -Ldir sau prin variabila de mediu LIBRARY_PATH. Biblioteca libxxx.a este specificată prin intermediul opțiunii -lxxx (litera minusculă 'l', fără prefixul lib și extensia .a).
    În Eclipse CDT, puteți seta căile de includere, căile de bibliotecă și bibliotecile prin clic dreapta pe proiect ⇒ Proprietăți ⇒ C/C++ General ⇒ Căi și simboluri ⇒ Sub filele „Includes”, „Library Paths” și „Libraries”. Setările se aplică numai la proiectul selectat.
    Pentru a seta căile de includere și căile de bibliotecă pentru toate proiectele, setați variabilele de mediu CPATH și LIBRARY_PATH. În Eclipse, alegeți „Window” ⇒ Preferences ⇒ C/C++ ⇒ Build ⇒ Environment.
    Alternativ, copiați anteturile și bibliotecile în directoare de sistem și puteți omite include-paths și library-paths.
  3. OpenGL with GLUT: Pentru Cygwin, trebuie să instalați gcc, g++, gdb, make (în categoria Devel) și opengl, freeglut (în categoria grafică). Antetele gl.h, glu.h, glut.h sunt păstrate în $cygwin\usr\include\w32api\GL. Utilizați #include <GL/gl__.h> pentru a include anteturile. Bibliotecile libopengl32.a libglu32.a și libglut32.a sunt păstrate în $cygwin\lib\w32api. Pentru a specifica aceste biblioteci în legătură, utilizați opțiunile -lopengl32 -lglu32 -lglut32 (fără prefixul lib și extensia .a).
  4. OpenGL cu SDL: Descărcați SDL din http://www.libsdl.org. Alegeți Development Libraries (Biblioteci de dezvoltare) ⇒ win32 ⇒ mingw32 ⇒ Unzip. Copiați directorul headers SDL (sub include) în $cygwin\usr\include\w32api; copiați toate fișierele de bibliotecă din lib în $cygwin\lib\w32api; copiați biblioteca run-time SDL.dll (sub bin) în Windows/System32. În programul dumneavoastră, includeți aceste două anteturi: și #include <SDL/sdl_opengl.h>. Pentru legare, adăugați aceste biblioteci: -lSDL -lSDL -lSDLmain.
  5. #pragma Comment Directive: Directiva pragma comment, de exemplu, #pragma comment(lib, "opengl32.lib"), este adesea utilizată pentru a include o anumită bibliotecă (la fel ca opțiunea -l). Această directivă dependentă de sistem funcționează în compilatorul Windows, dar NU și în GCC.
  6. Eroare „multiple target patterns”: Există o problemă cu GNU make (la $Cygwin\bin\make.exe). Înlocuit cu această copie la http://www.cmake.org/files/cygwin/make.exe.
  7. fflush(stdout): Biblioteca gcc utilizează I/O tamponat (în conformitate cu specificația C). Ieșirea este scrisă în fluxul de ieșire numai după un caracter de linie nouă. Puteți spăla ieșirea cu un fflush().
  8. Numele proiectului nu trebuie să includă cuvântul „setup”: Dacă denumiți proiectul C/C++ cu un nume care include cuvântul „setup„, atunci „*setup*.exe” rezultat va declanșa UAC (User Authorization Control) și va necesita dreptul de administrator pentru a fi rulat. (Mi-a luat câteva ore să-mi dau seama de acest lucru! Încercați să redenumiți un „hello.exe” în „mysetup.exe„.)

File I/O în Eclipse

Referire la Eclipse pentru File IO de la Java.

Lasă un răspuns Anulează răspunsul

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Arhive

  • ianuarie 2022
  • decembrie 2021
  • noiembrie 2021
  • octombrie 2021
  • septembrie 2021

Meta

  • Autentificare
  • Flux intrări
  • Flux comentarii
  • 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