Eclipse 4.3 (Kepler) pentru programare C/C++
On noiembrie 9, 2021 by adminEclipse 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)
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.
- MinGW GCC: Citiți „Cum se instalează MinGW”.
- 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:
- 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”. - 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
- Porniți Eclipse rulând „
eclipse.exe
” în directorul Eclipse instalat. - Alegeți un director adecvat pentru spațiul dvs. de lucru (de ex, unde doriți să vă salvați lucrările).
- 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++:
- Alegeți meniul „File” ⇒ „New” ⇒ Project… ⇒ C/C++ ⇒ Proiect C++.
- Se deschide fereastra de dialog „C++ Project”.
- În câmpul „Project name”, introduceți „
FirstProject
„. - În caseta „Project Types”, selectați „Executable” ⇒ „Empty Project”.
- În caseta „Toolchains”, alegeți compilatorul dumneavoastră, de ex, „Cygwin GCC” sau „MinGW GCC” ⇒ Next.
- În câmpul „Project name”, introduceți „
- Apare caseta de dialog „Select Configurations”. Selectați atât „Debug”, cât și „Release” ⇒ Finish.
Step 2: Write a Hello-world C++ Program
- În „Project Explorer” (panoul cel mai din stânga) ⇒ Faceți clic dreapta pe „
FirstProject
” (sau folosiți meniul „File”) ⇒ New ⇒ Source File. - Se afișează fereastra de dialog „New Source File”.
- În câmpul „Source file”, introduceți „
Hello.cpp
„. - Clic pe „Finish”.
- În câmpul „Source file”, introduceți „
- 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:
- „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
- „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:
- „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
- „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.
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
- Puteți găsi comenzile utilizate în Eclipse CDT pentru construirea proiectului la „
<workspace>\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log
„. - 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 mediuCPATH
. Library-path este specificat prin opțiunea-Ldir
sau prin variabila de mediuLIBRARY_PATH
. Bibliotecalibxxx.a
este specificată prin intermediul opțiunii-lxxx
(litera minusculă'l'
, fără prefixullib
ș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 mediuCPATH
șiLIBRARY_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. - 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. Bibliotecilelibopengl32.a
libglu32.a
șilibglut32.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ă prefixullib
și extensia.a
). - 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
(subinclude
) în$cygwin\usr\include\w32api
; copiați toate fișierele de bibliotecă dinlib
în$cygwin\lib\w32api
; copiați biblioteca run-timeSDL.dll
(subbin
) înWindows/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
. - #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. - 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. - 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()
. - 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