Precedente :: Successivo |
Autore |
Messaggio |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 06 Feb 2010 14:00 Oggetto: su 3 righe di codice 4 errori!! |
|
|
Salve,sto studiando il C++ e ho installato un vecchio compilatore...volevo provare il primo programma,praticamente volevo semplicemente che mi apparisse ciao.Ho scritto il programma...ma anzicchè ciao mi sono apparse dei messaggi di errore in numero quasi maggiore delle righe del programma...com'è possibile?Vi allego le righe di codice che ho scritto...dove ho sbagliato?
Codice: | # include <iostream>
using namespace std;
main() {
cout << "ciao";
} |
Mi da 3 errori e un warning...mi dice più o meno questo:
1)non riesco a includere il file iostream
2)sulla seconda riga dice:errore di sintassi
3)cout non definito
warning:la funzione dovrebbe restituire qualcosa |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 06 Feb 2010 18:58 Oggetto: |
|
|
Il problema potrebbe essere che lasci uno spazio tra "#" e "include" e ciò non è permesso.
Da lì tutto va a ramengo.
Nel caso che levi lo spazio e non ottieni miglioramenti vuol dire che,
secondo me, la versione del compilatore che usi è molto vecchia.
Ora, o cambi compilatore oppure riscrivi il tuo programma come nell'esempio qui sotto.
Codice: |
#include <iostream.h>
main() {
cout << "ciao";
return 0;
}
|
Questo dovrebbe andare.
Il warning sul tuo è dato dal fatto che hai main che ritorna in int ma non ha nessuna chiamata a "return". Se vuoi poter scrivere funzioni che non ritornano nulla DEVI dichiararle void. Anche così però potresti ottenere un warning che ti dice che la funzione DOVREBBE ritornare un int perchè è il comportamento standard di c++. Un warning di questo tipo può essere ignorato.
Sarebbe però opportuno usare la sintassi che hai provato tu; quindi per prima cosa prova a ricompilare senza lo spazio che ti ho detto all'inizio.
ciao |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 06 Feb 2010 19:48 Oggetto: |
|
|
Ciao freemind,ho provato a togliere lo spazio ma non è cambiato niente.Poi ho provato la versione che mi hai dato tu e ha funzionato alla grande...non c'è stato nemmeno bisogno di mettere return 0...ho solo tolto lo spazio e aggiunto .h a iostream e poi ho tolto la seconda riga.
Il compilatore è in effetti vecchio,l'ho avuto da mio zio...dove posso trovare uno più recente? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 07 Feb 2010 19:44 Oggetto: |
|
|
Anche se non è il top, il compilatore della digital mars non è male.
Qui c'è la pagina del sito da cui puoi tirar giù il compilatore.
Citazione: | Digital Mars C and C++ Compilers for Win32, Win16, DOS32 and DOS. Fastest compile/link times, powerful optimization technology, Design by Contract, complete library source, HTML browsable documentation, disassembler, librarian, resource compiler, make, etc., command line and GUI versions, tutorials, sample code, online updates, Standard Template Library, and much more. |
Va usato da riga di comando ma non è difficile.
L'unico consiglio che mi vien da darti è di aggiungere nel path la cartella bin che si trova dentro a quella in cui installi il programma. |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 08 Feb 2010 16:39 Oggetto: |
|
|
Ciao freemind,ho scaricato il compilatore che mi hai detto,ma non ho capito come installarlo...ho decompresso il file e ho visto ovunque alla ricerca di un eseguibile ma non l'ho trovato...o meglio nella directory bin le applicazioni c'erano,le ho provate tutte ma non è successo niente.Come faccio ad installarlo?
ciao |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 09 Feb 2010 22:11 Oggetto: |
|
|
In realtà se non ricordo male dmc non va installato, basta decomprimere lo zip da qualche parte e fine.
L'uso è da riga di comando.
Se hai il sorgente da compilare in "c:\sorgenti\test.cpp" per compilare (vado a memoria) dovresti spostarti nella cartella bin di dmc, ad esempio "c:\programmi\dmc\bin" e digitare
Codice: |
dmc c:\sorgenti\test.cpp
|
Sempre a memoria mi pare che il compilatore crei vari files tutti nella directory bin. Tra questi c'è anche out.exe (o forse a.exe? boh?) che è il tuo eseguibile.
Se non erro c'è l'opzione -o (come il compilatore gnu) che serve per stabilire la destinazione quindi:
Codice: |
dmc c:\sorgenti\test.cpp -o c:\sorgenti\test.exe
|
dovrebbe creare l'eseguibile nella stessa dir del sorgente.
Per evitare di partire sempre dalla dir di installazione del compilatore conviene settare nel path il percorso della dir bin.
Non posso fare delle prove per mancanza di windows però penso di non essere troppo lontano dal giusto.
Dmc è un buon compilatore, non mi son mai pentito quando l'ho usato! |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 10 Feb 2010 00:33 Oggetto: |
|
|
Ciao,ho seguito le tue istruzioni,ma c'è qualcosa che non va,continua a dirmi che non riesce ad aprire iostream... |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 10 Feb 2010 01:53 Oggetto: |
|
|
Ma sai che hai ragione!
Prova a vedere un po' qua
Citazione: |
Since version 8.29.18 Digital Mars C++ is able to use the STLport library with a minimum of changes. And since version 8.32.9 it is even able to use STLport with namespace support enabled. DMC 8.32.15 finally added explicit template instantiations.
Despite its name, STLport is a full ANSI C++ Standard library. But you can choose to only use the STL part of it in which case you only need to include STLport's header files and don't need to build a library.
|
Scarica quello che ti dice la pagina e segui le istruzioni che trovi lì.
Poi prova a compilare il tuo lavoro.
Se non dovesse ancora funzionare, prova a seguire il suggerimento sul forum di dmc
Se anche così non va, mi sa che ti consiglio un altro compilatore.
Vuoi mica dire che ho usato dmc sempre e solo come compilatore c???
Mi pare strano... |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 10 Feb 2010 18:03 Oggetto: |
|
|
Ciao freemind,ho capito...o almeno credo di aver capito come usare il compilatore su ubuntu...ma continua a darmi un sacco errori!Ho messo le solite righe di sorgente e le ho salvate nel file prova.c,poi ho chiamato l'eseguibile ciao.Ho compilato il programma e mi ha dato questi messaggi che ti riporto:
vito@vito-desktop:~$ gcc prova.c -o ciao
prova.c:1:21: error: iostream: No such file or directory
prova.c:2: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘namespace’
prova.c: In function ‘main’:
prova.c:4: error: ‘cout’ undeclared (first use in this function)
prova.c:4: error: (Each undeclared identifier is reported only once
prova.c:4: error: for each function it appears in.)
Inoltre non c'è nessuna traccia dell'eseguibile ciao...non dovrebbe essere nella stessa cartella di prova.c?...o forse non me lo da perchè il programma è pieno di errori?
ciao |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 11 Feb 2010 11:35 Oggetto: |
|
|
se la compilazione restituisce degli errori allora non avrai l'eseguibile... comunque gli errori in C vanno sempre guardati 'in ordine', spesso risolvendo il primo si risolvono anche gli altri. Ad esempio questo:
Codice: | prova.c:1:21: error: iostream: No such file or directory |
ti informa che non è riuscito a trovare il file che hai tentato di includere, non stupirti se poi non trova gli identificatori che tenti di usare...
se non va con
Codice: | #include <iostream.h> |
prova con
Codice: | #include "iostream.h" |
(non ricordo mai la differenza... una deve essere relativa alla cartella di default del compilatore e l'altra del progetto o cose simili...) |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 11 Feb 2010 13:00 Oggetto: |
|
|
Ciao sverx,veramente avevo provato con <iosteam>,ma proverò sia con <iostream.h> che con "iostream" e con "iostream.h"...ti faccio sapere.
ciao |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 11 Feb 2010 16:40 Oggetto: |
|
|
Ciao,ho provato in ogni modo...non riesce a caricare iostream...che poi è lo stesso problema che ho avuto con il compilatore dmc su windows!Mica sbaglio a posizionarmi...cioè mica il file da compilare deve essere in una particolare cartella?io metto il file sul desktop o in documenti e poi apro il terminale...faccio bene?
ciao |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 13 Feb 2010 19:42 Oggetto: |
|
|
Forse ti manca ancora qualche pacchetto anche se il build-essential dovrebbe essere sufficiente.
Per c++ il compilatore è g++ |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 13 Feb 2010 23:42 Oggetto: |
|
|
Si...hai centrato il problema,ho controllato e a me manca proprio il pacchetto build-essential,ecco perchè non riesce a caricare le librerie!Il punto è che build-essential non mi compare nemmeno trai pacchetti installabili...cioè non c'è proprio!Come potrei risolvere il problema?
Ciao |
|
Top |
|
 |
anabasi Amministratore


Registrato: 21/10/05 01:58 Messaggi: 15621 Residenza: Tra Alpi e Tanaro
|
Inviato: 14 Feb 2010 00:38 Oggetto: |
|
|
Ciao
franco.ab ha scritto: | Il punto è che build-essential non mi compare nemmeno tra i pacchetti installabili...cioè non c'è proprio! |
Se ti riferisci a Ubuntu 9.04 (Jaunty), nei repo il pacchetto build-essential c'è. |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 14 Feb 2010 13:56 Oggetto: |
|
|
Ciao Anabasi,ho provato a cercare build-essential con il pulsante cerca e mi da questo messaggio:
0 pockages listed
Poi ho provato a cercare emacs visto che a me non è installato e dovrei installarlo e mi dice:
6 pockages listed
Quindi non penso che ci sia...
ciao |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 14 Feb 2010 18:29 Oggetto: |
|
|
Hai provato a passare per aptitude?
digiti la tua password.
Poi premi "/" e scrivi build-essential e batti invio. |
|
Top |
|
 |
anabasi Amministratore


Registrato: 21/10/05 01:58 Messaggi: 15621 Residenza: Tra Alpi e Tanaro
|
Inviato: 14 Feb 2010 20:23 Oggetto: |
|
|
Ciao
franco.ab ha scritto: | Ciao Anabasi,ho provato a cercare build-essential con il pulsante cerca e mi da questo messaggio:
0 pockages listed
[...]
Quindi non penso che ci sia...
|
Il pacchetto build-essential nei repositories di Ubuntu Jaunty c'è, senza alcun dubbio: nel post precedente ho inserito il link. E' strano che con il gestore grafico di pacchetti (Ubuntu 9.04 ha Synaptic) tu non riesca a individuarlo.
In alternativa, puoi seguire il consiglio di Freemind, oppure provare a utilizzare apt-get da riga di comando:
Codice: |
sudo apt-get install build-essential
|
In questo modo, sarà apt-get a effettuare per te la ricerca nei repo, verificare la necessità di soddisfare dipendenze, e quindi scaricare e installare tutto.
(in pratica, Synaptic è l'interfaccia grafica di apt-get. Nel caso tu abbia commesso qualche errore durante la ricerca con Synaptic, apt-get da linea di comando risolverebbe) |
|
Top |
|
 |
franco.ab Dio minore

Registrato: 17/11/08 12:52 Messaggi: 666
|
Inviato: 14 Feb 2010 21:58 Oggetto: |
|
|
Ciao,vi allego il messaggio che mi compare:
vito@vito-desktop:~$ sudo apt-get install build-essential
[sudo] password for vito:
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Reading state information... Fatto
Il pacchetto build-essential non ha versioni disponibili, ma è nominato da un altro
pacchetto. Questo significa che il pacchetto manca, è diventato obsoleto
o è disponibile solo all'interno di un'altra sorgente
E: Il pacchetto build-essential non ha candidati da installare |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 14 Feb 2010 22:25 Oggetto: |
|
|
, purtroppo allora non ho nessun'altra idea.
Non ho ubuntu per far delle prove.
Comunque è strano, forse nel source.list hai remmato qualche repo.
Dico che è strano perchè quello è uno dei pacchetti fondamentali per poter compilare la quasi totalità del sistema; non capisco perchè non ti trovi nulla. |
|
Top |
|
 |
|