Che cos'è un comando per compilare ed eseguire programmi C ++?


Risposte:


108

Per compilare il codice c ++, utilizzare:

g++ foo.cpp

foo.cpp nell'esempio è il nome del programma da compilare.

Questo produrrà un eseguibile nella stessa directory chiamata a.outche puoi eseguire digitandolo nel tuo terminale:

./a.out

g ++ dovrebbe essere già nel tuo $ PATH, quindi non è necessario chiamare /usr/bin/g++esplicitamente, ma puoi usare quest'ultimo in ogni caso.

foo.cppdovrebbe trovarsi nella stessa directory da cui stai eseguendo il comando. In caso di dubbi, puoi assicurarti di trovarti nella stessa directory digitando ls foo.cppo head foo.cpp(se devi verificare che stai lavorando con il corretto foo.)

Come notato da @ con-f-use, il compilatore di solito renderà eseguibile questo file, ma in caso contrario, puoi farlo tu stesso (quindi il comando da eseguire, ./a.outo equivalente, funzionerà):

chmod +x ./a.out

Per specificare il nome del file di output compilato, in modo che non sia denominato a.out, utilizzare -ocon il comando g ++.

Per esempio

g++ -o output foo.cpp

Questo verrà compilato foo.cppnel file binario denominato outputed è possibile digitare ./outputper eseguire il codice compilato.


6
Il compilatore di solito rende eseguibile il binario ( a.outin questo caso). Se non è possibile farlo digitando: chmod +x a.out. Quando il tuo programma compilato è eseguibile, puoi eseguirlo digitando ./a.out- il punto e l'indicazione della barra, che vuoi eseguirlo.
con-f-use

@Rajeshkumar, hai trovato una di queste risposte di tuo gradimento? In tal caso, puoi contrassegnarne una come risposta accettata (selezionando il segno di spunta sotto le frecce di voto su / giù) in modo da poter tracciare una linea al di sotto di questo problema.

C'è una differenza tra g ++ foo.c -o output e g ++ -o output foo.c?
Goldname

21

Sto facendo due ipotesi qui:

  1. Hai già un file / programma C ++ pronto per la compilazione
  2. Hai impostato un sistema di generazione sul tuo computer

Il modo più semplice per compilare un programma C ++ su Ubuntu, o qualsiasi altra distribuzione Linux per quello, è digitare

g++ main.cpp -o main
  • g ++ è l'invocazione del componente C ++ di GCC , il compilatore defacto per C / C ++ e tutta l'host di altre lingue sulla piattaforma Linux. Al momento è l'unico compilatore in grado di compilare il kernel Linux.
  • main.cpp è il file sorgente c ++ che desideri compilare.
  • -o main specifica il nome del file di output che si desidera creare una volta compilata la fonte. Il file sorgente di destinazione e il file di output di destinazione possono essere invertiti se lo si desidera, quindi g++ -o main main.cppè ugualmente valido.
  • Per eseguire quindi quel programma, è necessario eseguire ./main nel terminale.

I comandi precedenti presuppongono che ci si trovi già nella posizione dei file di origine, ma sia il file di origine che il file di output di destinazione possono anche essere specificati come directory. Per esempio

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

compilerà un file sorgente C ++ situato sul desktop e posizionerà il file binario eseguibile in una Projectscartella nella directory home. Per eseguire questo eseguibile, esegui ./Projects/main.


5

È così che mi piace compilare con 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
-p: Generate extra code to write profile information suitable for the analysis program prof

1
-p: Generate extra code to write profile information suitable for the analysis program prof.
Hans,

Mi piace la tua risposta. Porta suggerimenti extra. Ma dovresti davvero riformularlo per essere generalmente accettabile.
LinuxSecurity:

1

Hai bisogno di g ++, perché gcc potrebbe non compilare facilmente il file cpp.
Devi anche imparare vim o emacs per scrivere il codice C.
Prova questo sul tuo terminale:

Digita un programma di prova e salvalo:

$vim hello.cc

Compila hello.cccon g ++:

$g++ hello.cc -o hello

Eseguilo:

$./hello

Qui ./significa che il file exe è sotto la directory corrente.


3
gcc è il compilatore GNU per i compilatori C e C ++. E l'OP non ha necessariamente bisogno di conoscere vim o emacs per scrivere il codice C, ci sono molti altri editor di testo e IDE che fluttuano intorno.
Nitin Venkatesh,

3
anche se amo Vim, se qualcuno ha già difficoltà a scoprire come risolvere un problema, suggerire che Vim non è molto utile.
johanvdw,

Personalmente non mi piace vi, ma non importa. Dovresti allontanarti dal suggerire un editore specifico, ognuno usa comunque il proprio.
LinuxSecurity:

0

g++è un front-end a gcc(GNU Compiler Collection) con alcune macro c ++ predefinite e diverse opzioni / flag predefiniti.

compilare il codice c ++ con gccè utile quando g++non è disponibile per una serie di motivi, in effetti si tratta solo di collegarsi alla libreria c ++ -lstdc++e informare gcc per trattare l'input come codice c ++ (usando .Cun'estensione o forzando la lingua con -x)
altro nome di file C ++ validi suffissi: .cc, .cp, .cxx, .cpp, .CPP,.c++

esempio :

gcc cpp_code.C -lstdc++ l'estensione maiuscola ( .C) è importante per gcc per sapere che è un file c ++.

o specificando esplicitamente la lingua di input:

gcc -x c++ cpp_code.txt -lstdc++ l'estensione può essere qualsiasi cosa o addirittura nulla

per impostazione predefinita, il risultato (dopo una compilazione corretta) è un a.outfile che può essere eseguito con./a.out


La tua risposta è più istruttiva
Billal Begueradj,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.