Problema iniziale per eseguire un programma con gcc
Ciao a tutti. Come detto ho appena iniziato a studiare programmazione, linguaggio C++, ubuntu e gcc come compilatore.
Vorrei chiedervi un piccolo aiuto per iniziare l'esecuzione del programma, perchè non riesco a capire.
Scrivo il programmino, esempio "ciao mondo" con l'editor testi di ubuntu, poi lo salvo con estensione .cc (è l'estensione che ci ha detto il prof a lezione).
Dopo apro il terminale e qui due domande: Il terminale da aprire è sempre quello che si trova in HOME, dove c'è appunto scritto TERMINAL giusto? Aperto il terminale cosa devo scrivere per far eseguire il programma? Perchè scrivendo quello che ho nelle slide di lezione, mi dice che non può eseguire il programma.... In pratica, voi cosa scrivete per eseguire il programma nel terminale? E quale terminale usate?
Grazie!
Vorrei chiedervi un piccolo aiuto per iniziare l'esecuzione del programma, perchè non riesco a capire.
Scrivo il programmino, esempio "ciao mondo" con l'editor testi di ubuntu, poi lo salvo con estensione .cc (è l'estensione che ci ha detto il prof a lezione).
Dopo apro il terminale e qui due domande: Il terminale da aprire è sempre quello che si trova in HOME, dove c'è appunto scritto TERMINAL giusto? Aperto il terminale cosa devo scrivere per far eseguire il programma? Perchè scrivendo quello che ho nelle slide di lezione, mi dice che non può eseguire il programma.... In pratica, voi cosa scrivete per eseguire il programma nel terminale? E quale terminale usate?
Grazie!
Risposte
Una volta aperto il terminale devi andare nella directory dove si trova il tuo file .cc. Ad esempio, se l'hai salvato sul desktop il percorso del file sarà qualcosa come /home/jorja92/Scrivania/hello.cc. Una volta nella directory giusta usi GCC per compilare (con il comando "g++", non "gcc").
Con il primo comando ti sposti nella directory.
Con il secondo compili il file "hello.cc" nel file "hello.exe" (su Linux gli eseguibili spesso non hanno estensione, puoi chiamarlo anche "hello") usando la versione 98 dello standard C++ (parametri "-std=c++98 -pedantic") abilitando tutti gli avvisi possibili (parametri "-Wall -Wextra"). Così disabiliti alcune estensioni non standard predefinite in GCC (che è meglio non usare), inoltre gli avvisi sono utili a capire eventuali problemi.
Con il terzo comando esegui il file appena compilato. "./" serve a dire "in questa directory", su Linux quando chiami un programma non viene cercato nella directory corrente, quindi devi dirlo esplicitamente.
Nota: su Ubuntu dovresti poter installare facilmente Clang. È un compilatore C/C++ alternativo a GCC, con messaggi di errore e avvisi infinitamente più chiari. Si usa nello stesso identico modo di GCC, supporta gli stessi parametri, devi solo cambiare il comando "g++" con "clang++".
cd /home/jorja92/Scrivania/ g++ -std=c++98 -pedantic -Wall -Wextra hello.cc -o hello.exe ./hello.exe
Con il primo comando ti sposti nella directory.
Con il secondo compili il file "hello.cc" nel file "hello.exe" (su Linux gli eseguibili spesso non hanno estensione, puoi chiamarlo anche "hello") usando la versione 98 dello standard C++ (parametri "-std=c++98 -pedantic") abilitando tutti gli avvisi possibili (parametri "-Wall -Wextra"). Così disabiliti alcune estensioni non standard predefinite in GCC (che è meglio non usare), inoltre gli avvisi sono utili a capire eventuali problemi.
Con il terzo comando esegui il file appena compilato. "./" serve a dire "in questa directory", su Linux quando chiami un programma non viene cercato nella directory corrente, quindi devi dirlo esplicitamente.
Nota: su Ubuntu dovresti poter installare facilmente Clang. È un compilatore C/C++ alternativo a GCC, con messaggi di errore e avvisi infinitamente più chiari. Si usa nello stesso identico modo di GCC, supporta gli stessi parametri, devi solo cambiare il comando "g++" con "clang++".
Grazie infinite per il momento ... adesso riprovo a fare tutto, e spero di riuscirci...ti dico!!!
GRAZIE!!!!!!!!!
GRAZIE!!!!!!!!!
Scrivo qui di seguito l'errore che mi continua a uscire dal terminale, dopo essere entrata nella directory scrivania, dove ho salvato il file (il nome è hellotugu, come lo aveva chiamato il prof):
fatal error: studio.h: File o directory non esistente
compilation terminated.
Ho provato anche a non mettere -std=c++98 -pedantic, visto che uso l'ultimissa versione di ubuntu e g++, ma l'errore che esce è sempre lo stesso che si legge li...
C'è qualcosa che non va?
Forse il terminale è un altro allora?
fatal error: studio.h: File o directory non esistente
compilation terminated.
Ho provato anche a non mettere -std=c++98 -pedantic, visto che uso l'ultimissa versione di ubuntu e g++, ma l'errore che esce è sempre lo stesso che si legge li...
C'è qualcosa che non va?
Forse il terminale è un altro allora?
Mostra il codice che stai compilando. Sembra che voglia includere un file "studio.h", che non trova.
Oppure è un refuso per "stdio.h"? Nel qual caso devi installare il pacchetto "build-essential" (o "build-essentials", con la -s) dal gestore programmi.
Oppure è un refuso per "stdio.h"? Nel qual caso devi installare il pacchetto "build-essential" (o "build-essentials", con la -s) dal gestore programmi.
studio.h non esiste.
La libreria che devi includere si chiama stdio.h (STanDard Input Output)
La libreria che devi includere si chiama stdio.h (STanDard Input Output)
L'errore mi esce dopo che scrivo questo:
g++ -std=c++98 -pedantic -Wall -Wextra hellotogu.cc -o hellotogu.exe
Anche se scrivo solo:
g++ -Wall -Wextra hellotogu.cc -o hellotogu.exe (quindi non mettendo std=c++98 -pedantic, l'errore che esce è lo stesso).
g++ -std=c++98 -pedantic -Wall -Wextra hellotogu.cc -o hellotogu.exe
Anche se scrivo solo:
g++ -Wall -Wextra hellotogu.cc -o hellotogu.exe (quindi non mettendo std=c++98 -pedantic, l'errore che esce è lo stesso).
Intendo il contenuto del file hellotogu.cc.
Ah, scusa
....
è questo il contenuto:
#include
int main (void) {
printf("Hello Tugu!\n");
return 0;
}
forse allora è in allora il problema? Doveri cambiare libreria?

è questo il contenuto:
#include
int main (void) {
printf("Hello Tugu!\n");
return 0;
}
forse allora è in
Il file si chiama "stdio.h", senza la u. Come ha detto nessuno.nobody è un acronimo per (STanDard Input Output).
Comunque quello è un sorgente C, non C++. Dovresti compilarlo con "gcc" (-std=c99). Stai studiando C o C++?
Comunque quello è un sorgente C, non C++. Dovresti compilarlo con "gcc" (-std=c99). Stai studiando C o C++?
Usiamo il C++.
Grazie comunque a tutti ... ho corretto l'errore e finalmente adesso va... GRAZIE A TUTTI per l'aiuto
Grazie comunque a tutti ... ho corretto l'errore e finalmente adesso va... GRAZIE A TUTTI per l'aiuto
