Compilarea cu g++
g++ comanda este o comandă de invocare a compilatorului GNU c++, care este utilizată pentru preprocesarea, compilarea, asamblarea și legarea codului sursă pentru a genera un fișier executabil. Diferitele opțiuni ale comenzii g++ ne permit să oprim acest proces în etapa intermediară.
- Verificați informațiile despre versiunea compilatorului g++:
g++ --version
- Compilați un fișier CPP pentru a genera fișierul țintă executabil: g++ nume_fișier comanda este folosită pentru a compila și a crea un fișier executabil a.out (nume țintă implicit).
Exemplu: Dat un program simplu pentru a imprima Hello Geek pe ieșire standard cu nume de fișier salut.cpp
// hello.cpp file #include int main() { std::cout < < 'Hello Geek
'; return 0; }
g++ hello.cpp
Aceasta se compilează și se leagă salut.cpp pentru a produce un fișier executabil țintă implicit a.out în directorul de lucru actual. Pentru a rula acest program, tastați ./a.out Unde ./ reprezintă directorul de lucru prezent și a.out este fișierul țintă executabil.
./a.out
- g++ -S nume_fișier este folosit doar pentru a compila nume de fișier și nu asamblarea sau legarea. Va genera o nume_fișier.s fișier sursă de asamblare.
Exemplu:
g++ -S hello.cpp
- g++ -c nume_fișier este folosit doar pentru a compila și a asambla nume de fișier și nu conectați codul obiect pentru a produce fișierul executabil. Va genera o nume_fișier.o fișier cod obiect în directorul de lucru actual.
Exemplu:
g++ -c hello.cpp
- g++ -o nume_țintă nume_fișier: Compilează și leagă nume de fișier și generează fișierul țintă executabil cu nume_țintă (sau a.out în mod implicit).
Exemplu:
g++ -o main.exe hello.cpp
- Compilați și legați mai multe fișiere: Când -c este utilizat flag, invocă etapa de compilare care traduce codul sursă în cod obiect. Când este folosit flag -o, se leagă codul obiect pentru a crea fișierul executabil din nume_fișier.o la a.out(implicit) , mai multe fișiere pot fi transmise împreună ca argumente.
Exemplu:
// hello.cpp file #include 'helloWorld.h' #include int main() { std::cout < < 'Hello Geek
'; helloWorld(); return 0; }
// helloWorld.cpp file #include void helloWorld() { std::cout < < 'Hello World
'; }
// helloWorld.h file void helloWorld();
g++ -c helloWorld.cpp hello.cpp
- Compilează și creează cod obiect pentru fișierele helloWorld.cpp și hello.cpp la helloWorld.o și respectiv hello.o.
g++ -o main.exe helloWorld.o hello.o
- Leagă codurile obiect helloWorld.o și hello.o pentru a crea un fișier executabil main.exe
./main.exe
- Rulează fișierul executabil main.exe
- g++ -Nume_fișier de perete: Tipărește toate mesajele de avertizare care sunt generate în timpul compilării nume de fișier .
Exemplu:
// hello.cpp file #include int main() { int i; std::cout < < 'Hello Geek
'; return 0; }
g++ -Wall hello.cpp
- Extensia fișierelor pentru fișierele c++ poate fi .cpp sau .c++, .cpp este utilizat pe scară largă, dar .cpp și .c++ sunt exact aceleași și toate funcționalitățile de mai sus sunt aceleași și pentru .c++