Compilatore C++ per ubuntu

poncelet
Qualcuno mi può consigliare un compilatore C++ per ubuntu?

Risposte
_overflow_1
ciao!!!

edit

avevo frainteso, mi scuso per l'errore, e anche io ti consiglio g++ che se non sbaglio è già presente su ubuntu...

Rggb1
Se è per C++ allora direi g++

apatriarca
Su linux, per scopi non commerciali, è possibile usare anche i programmi della Intel (le versioni commerciali costano molto). Qui trovi maggiori informazioni. g++ è un ottimo compilatore e non ha le limitazioni di uso del software intel, ma può valer la pena di dare un occhiata a questa possibilità per metter mano alle librerie matematiche o a VTune o a Thread Checker. Se non ricordo male, Ubuntu fino a qualche versione fa non installava g++ nell'installazione di base (non ho installato le ultime 2-3 versioni). Se scrivendo
g++ --version
sulla console non compare la versione di g++, allora devi installare il pacchetto corrispondente (non ricordo il nome però..).

poncelet
Scusate, sono un po' asino in informatica (e sto scoprendo da poco Linux). Ho installato g++ ma non so come farlo partire. Ho provato ad installare Code Block ma non riesco ad eseguire i programmi in C++ che devo scrivere per l'esame di Informatica. Su Windows usavo Dev C++, mi chiedevo se esiste qualcosa di simile per Ubuntu o se qualcuno mi spiega come utilizzare g++. Grazie.

apatriarca
Code::Blocks va benissimo (ed è molto meglio di Dev-C++ anche su Windows). Che cosa non riesci a fare esattamente? Non compila? Non riesci ad eseguire il programma? Vengono restituiti degli errori?

I problemi potrebbero essere principalmente 2:
1. Code::Blocks o g++ non sono installati o più probabilmente configurati nel modo corretto;
2. Il codice che stai testando contiene degli errori che il pessimo e datato compilatore contenuto in Dev-C++ non li riporta in modo corretto.

Devi darci informazioni maggiori.

P.S. Ho appena visto che sei di Matematica a Torino. L'opzione 2 diventa allora abbastanza probabile (so di altri che hanno avuto problemi ad usare compilatori diversi da quello di Dev-C++). Prova a compilare usando Code::Blocks il seguente codice
#include <iostream>

int main()
{
    std::cout << "Ciao mondo\n";
}

Riesce a compilarlo? Riesci ad eseguirlo?

Se hai risposto sì ad entrambe le domande allora dovresti postare il codice e gli errori restituiti da Code::Blocks.

poncelet
"apatriarca":
Code::Blocks va benissimo (ed è molto meglio di Dev-C++ anche su Windows). Che cosa non riesci a fare esattamente? Non compila? Non riesci ad eseguire il programma? Vengono restituiti degli errori?


Non riesco ad eseguire il programma, nel senso che cliccando su build and run, non succede nulla. Forse devo solo capire come funziona Code Block. Per quanto riguarda g++ vorrei solo capire come avviarlo. Grazie.

apatriarca
Scrivi
std::cout << "Premi invio per terminare il programma.\n";
std::cin.ignore();

Alla fine del codice.

poncelet
Adesso sono al lavoro e non ho con me il portatile dove ho Code::Blocks installato. Comunque ieri ho provato questo banale programma:

#include <iostream>
using namespace std;
int main ()
{
int m,n;
m=33;
cout << "m = " << m << endl;
n=m+33;
cout << "e n = " << n << endl;
system("PAUSE");
}



Ma non eseguiva. Probabilmente sbaglio qualcosa nell'utilizzo del compilatore.

apatriarca
system("PAUSE");

Questa riga funziona solo su Windows e comunque richiederebbe l'inclusione di cstdlib. Sostituisci la riga con le due che ho scritto in precedenza e dovrebbe funzionare.

poncelet
Ok, stasera provo e poi ti dico. Grazie mille.

Rggb1
"maxsiviero":
Per quanto riguarda g++ vorrei solo capire come avviarlo.

Una volta installato, semplicemente
gcc nome_sorgente -o nome_eseguibile
oppure equivalentemente
g++ nome_sorgente -o nome_eseguibile
c++ nome_sorgente -o nome_eseguibile

Se nome_sorgente finisce per .cpp .c++ .cc il compilatore lo considera automaticamente un sorgente C++. 'man gcc' per dettagli.

poncelet
Grazie Rggb!

poncelet
Scusate ma sono proprio scarso. Allora, ho aperto Code::Blocks, ho fatto file->Open ed ho aperto il mio file sorgente, poi ho fatto Build and Run ma non succede nulla.

apatriarca
È da tanto che non uso Code::Blocks, ma potrebbe essere necessario creare un nuovo progetto.

poncelet
Il fatto è che se eseguo gli stessi passi su Code::Blocks per Windows funziona correttamente.

apatriarca
Hai provato a scrivere sulla console il seguente codice dalla cartella corretta? Funziona?
> gcc nome_sorgente.cpp -o nome_eseguibile
> ./nome_eseguibile

poncelet
Alla fine ho deciso di utilizzare gcc. Solo un chiarimento, dopo aver compilato il programma, mi crea un file che chiama in automatico a.out che poi posso eseguire dal terminale. Però non capisco perché se successivamente compilo un altro programma sempre nella stessa cartella mi sovrascrive il fil a.out con quello nuovo. C'è un modo di creare un file diverso per ogni file sorgente?

Rggb1
Se non metti l'opzione -o seguita dal nome dell'eseguibile che vuoi creare, gcc scrive sempre in a.out, quindi come già detto

gcc nome_sorgente.cpp -o nome_eseguibile

crea, a meno di errori, un file eseguibile di nome nome_eseguibile.

apatriarca
Ma come mai ti stai "complicando" la vita cercando di programmare su linux se su Windows ci riesci senza problemi? Inoltre i tuoi professori sembrano dare un po' per scontato l'uso di Dev-C++ come strumento di sviluppo.

poncelet
In realtà volevo iniziare ad utilizzare ubuntu come sistema operativo e nel frattempo sto preparando l'esame di Informatica quindi ho voluto provare ad unire le due cose.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.