Vraag Wat is een opdracht voor het compileren en uitvoeren van C ++ -programma's?


Ik ben nieuw voor Linux. Ik gebruik Ubuntu 11.04 en weet niet hoe ik het C ++ -programma moet compileren en uitvoeren. Ik moet de commando's kennen om Compileren en uitvoeren een C ++ -programma onder Linux.


68
2017-09-14 15:44


oorsprong


Heeft een van de antwoorden je geholpen? - lindhe


antwoorden:


Gebruik om uw c ++ -code te compileren:

g++ foo.c 

foo.c in het voorbeeld is de naam van het programma dat moet worden gecompileerd.

Dit produceert een uitvoerbaar bestand in dezelfde opgeroepen map a.out welke je kunt uitvoeren door dit in je terminal te typen:

./a.out

g ++ zou al in je $ PATH moeten staan, dus je hoeft niet te bellen /usr/bin/g++ expliciet, maar je kunt de laatste in elk geval gebruiken.

foo.c moet in dezelfde map staan ​​waar u de opdracht vanaf uitvoert. Als er enige twijfel bestaat, kunt u ervoor zorgen dat u in dezelfde directory zit door te typen ls foo.c of head foo.c (als je moet verifiëren dat je met het goede werkt foo.)

Zoals opgemerkt door @ con-f-gebruik, zal de compiler dit bestand meestal uitvoerbaar maken, maar als dat niet het geval is, kunt u dit zelf doen (dus de opdracht die moet worden uitgevoerd, ./a.out of gelijkwaardig, zal werken):

chmod +x ./a.out

Om de naam van het gecompileerde uitvoerbestand op te geven, zodat het geen naam heeft a.out, use-o` met je g ++ commando.
 bv

g++ -o output foo.c 

Dit zal compileren foo.c naar het binaire bestand met de naam outputen u kunt typen ./output om de gecompileerde code uit te voeren.


81
2017-09-14 15:48



De compiler maakt meestal het binaire bestand (a.out in dit geval) uitvoerbaar. Zo niet, dan kunt u het volgende doen: chmod +x a.out. Wanneer uw gecompileerde programma uitvoerbaar is, kunt u het uitvoeren met typen ./a.out - de punt en de schuine streepindicatie, dat u het wilt uitvoeren. - con-f-use
@Rajeshkumar, heb je een van deze antwoorden gevonden zoals jij dat wilt? Als dit het geval is, kunt u een van hen als geaccepteerd antwoord markeren (door het vinkje onder de pijltjes omhoog / omlaag aan te vinken), zodat we een lijn kunnen trekken onder dit probleem. - Chris Wilson
Is er een verschil tussen g ++ foo.c -o output en g ++ -o output foo.c? - Goldname


Ik maak hier twee aannames:

  1. U hebt al een C ++ bronbestand / programma klaar om te bouwen
  2. U hebt een build-systeem op uw computer geïnstalleerd

De eenvoudigste manier om een ​​C ++ -programma te compileren op Ubuntu, of een andere Linux-distro, is om te typen

g++ main.cpp -o main
  • g ++ is het aanroepen van de C ++ component van GCC, de defacto-compiler voor C / C ++ en een hele reeks andere talen op het Linux-platform. Het is momenteel de enige compiler die in staat is om de Linux-kernel te compileren.
  • main.cpp is het c ++ bronbestand dat u wilt compileren.
  • -o main geeft de naam aan van het uitvoerbestand dat u wilt maken zodra de bron is gecompileerd. Het doelbronbestand en het doeluitvoerbestand kunnen indien gewenst worden omgekeerd g++ -o main main.cpp is even geldig.
  • Om dat programma vervolgens uit te voeren, moet u ./main in de terminal doen.

De bovenstaande opdrachten gaan ervan uit dat u zich al op de locatie van de bronbestanden bevindt, maar zowel het bronbestand als het doeluitvoerbestand kunnen ook als een map worden opgegeven. Bijvoorbeeld

g++ ~/Desktop/main.cpp -o ~/Projects/main

zal een C ++ bronbestand compileren dat zich op uw bureaublad bevindt en het uitvoerbare binaire bestand in a plaatsen Projects map in uw thuismap. Voer dit uit om dit uitvoerbare bestand uit te voeren ./Projects/main.


15
2017-09-15 08:51





Dit is hoe ik het leuk vind om te compileren met g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp

-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the 
name of our source code file

4
2017-09-03 06:03



-p: Generate extra code to write profile information suitable for the analysis program prof. - Hans
Ik vind je antwoord leuk. Het brengt extra suggesties. Maar je zou het echt opnieuw moeten formuleren om algemeen aanvaardbaar te zijn. - Vlastimil


g++ filename.cpp 

bijv:

g++ One.cpp

Dit genereert een uitvoerbestand met de naam (bijvoorbeeld):

a.out

Als u een ander programma maakt en dat compileert (bijvoorbeeld):

g++ Two.cpp

Dit genereert ook een uitvoerbestand met de naam (bijvoorbeeld):

a.out

Dit betekent dat je de uitvoer van alleen het laatst gecompileerde programma kunt krijgen als je dat uitvoert. Om dit gebruik te voorkomen (bijvoorbeeld)

g++ One.cpp -o One 

nu zal uw uitvoerbestand zijn:

One

Nu kunt u het bestand uitvoeren met de door u opgegeven naam.


2
2018-06-22 18:15



Ik kan niet zien hoe dit antwoord het bestaande geaccepteerde antwoord zou kunnen verbeteren. - Vlastimil


U hebt g ++ nodig, want gcc compileert cpp-bestanden mogelijk niet gemakkelijk.
Je moet ook vim of emacs leren om C-code te schrijven.
Probeer dit gewoon op uw terminal:

Typ een testprogramma en sla het op:

$vim hello.cc

Compileren hello.cc met g ++:

$g++ hello.cc -o hello

Voer het uit:

$./hello

Hier de ./ betekent dat het exe-bestand zich onder het huidige richtsnoer bevindt.


1
2017-09-14 16:33



gcc is de GNU-compiler voor C- en C ++ -compiler. En het OP hoeft niet per se vim of emacs te kennen om C-code te schrijven, er zijn veel andere teksteditors en IDE's rondzwerven. - Nitin Venkatesh
hoewel ik van vim hou, als iemand al worstelt met het vinden van een probleem, is het suggereren dat vim niet erg nuttig is. - johanvdw
Ik persoonlijk vind het niet leuk vi, maar het maakt niet uit. Je moet afwijken van het suggereren van een specifieke editor, iedereen gebruikt hoe dan ook zijn / haar eigen. - Vlastimil


g++ is een front-end voor gcc(GNU Compiler Collection) met enkele vooraf gedefinieerde c ++ macro's en verschillende standaardopties / vlaggen.

compileren van c ++ code met gcc is handig wanneer g++ is om een ​​aantal redenen niet beschikbaar, in feite is het gewoon een kwestie van koppelen aan de c ++ -bibliotheek -lstdc++ en het informeren van gcc om de invoer te behandelen als c ++ code (ofwel door a te gebruiken .C extensie of de taal dwingen met -x)
andere geldige achtervoegsels voor c ++ -bestandsnamen: .cc , .cp , .cxx , .cpp , .CPP , .c++ 

voorbeeld:

gcc cpp_code.C -lstdc++     de extensie in hoofdletters (.C) is belangrijk voor gcc om te weten dat het een c ++ -bestand is.

of expliciet de invoertaal opgeven:

gcc -x c++ cpp_code.txt -lstdc++  extensie kan van alles of zelfs niets zijn

standaard is het resultaat (na een succesvolle compilatie) een a.out bestand dat kan worden gebruikt ./a.out


0
2017-07-16 05:45



Uw antwoord is informatiever - Billal Begueradj