Sono nuovo di Linux. Sto usando Ubuntu 11.04 e non so come compilare ed eseguire il programma C ++ in esso. Ho bisogno di conoscere i comandi per compilare ed eseguire un programma C ++ in Linux.
Sono nuovo di Linux. Sto usando Ubuntu 11.04 e non so come compilare ed eseguire il programma C ++ in esso. Ho bisogno di conoscere i comandi per compilare ed eseguire un programma C ++ in Linux.
Risposte:
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.
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.
Sto facendo due ipotesi qui:
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++ -o main main.cppè ugualmente valido.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.
È 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
-p: Generate extra code to write profile information suitable for the analysis program prof.
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.
vi, ma non importa. Dovresti allontanarti dal suggerire un editore specifico, ognuno usa comunque il proprio.
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