vinzmac Inviato 16 Gennaio 2009 Segnala Condividi Inviato 16 Gennaio 2009 ciao a tutti, sono nuovo del forum e anche del mondo della mela, quindi vi chiedo scusa se dico cose assurde e/o banali io ho bisogno di programmare in c++ quindi ho installato xcode lo lancio e lo provo, ho letto che bisogna fare nuovo progetto e nn nuovo file altrimenti nn posso compilare e lanciare il programma, faccio nuovo progetto e poi nuovo file scrivo il mio bel programmino che ora vi riporto #include<iostream> using namespace std; #include<stdlib.h> int main() { float a,b,c; float max; cout<<"\n\nassegna valore ad a,b,c \n\n"; cin>>a>>b>>c; max=a; if(b>max) { max=b; } if(c>max) max=c; cout<<"\n\nil massimo valore è:"<<max; system("PAUSE"); return 0; } niente di trascendentale, solo un programma che riconosce il più grande fra tre numeri e mi da il seguente errore che nn capisco, anche perchè qui a divverenza del dev-c++ nn dice la riga dove è situato l'errore. l'errore è il seguente: Building target “max†of project “max†with configuration “Release†— (1 error) cd /Users/vinz/max /Developer/usr/bin/g++-4.0 -o /Users/vinz/max/build/max.build/Release/max.build/Objects-normal/ppc/max -L/Users/vinz/max/build/Release -F/Users/vinz/max/build/Release -filelist /Users/vinz/max/build/max.build/Release/max.build/Objects-normal/ppc/max.LinkFileList -framework Carbon -arch ppc -mmacosx-version-min=10.5 -Wl,-dead_strip -no_dead_strip_inits_and_terms -isysroot /Developer/SDKs/MacOSX10.5.sdk ld: duplicate symbol _main in /Users/vinz/max/build/max.build/Release/max.build/Objects-normal/ppc/max.o and /Users/vinz/max/build/max.build/Release/max.build/Objects-normal/ppc/main.o collect2: ld returned 1 exit status ld: duplicate symbol _main in /Users/vinz/max/build/max.build/Release/max.build/Objects-normal/ppc/max.o and /Users/vinz/max/build/max.build/Release/max.build/Objects-normal/ppc/main.o collect2: ld returned 1 exit status Build failed (1 error) qualcuno di voi può essermi di aiuto??? poi un'altra cosa, per aprire un progetto già esistente come si fa? mica devo fare ogni volta crea nuovo progetto? Link al commento Condividi su altri siti Altre opzioni di condivisione...
vinzmac Inviato 16 Gennaio 2009 Autore Segnala Condividi Inviato 16 Gennaio 2009 ci tenevo ad aggiungere che il programma funziona e ne sono sicuro perchè lo avevo compilato precedentemente su dev-c++ su windows, vorrei capire se ho sbagliato qualcosa nell'utilizzo di xcode, se il linguaggio è diverso o che altro... Link al commento Condividi su altri siti Altre opzioni di condivisione...
nico96 Inviato 16 Gennaio 2009 Segnala Condividi Inviato 16 Gennaio 2009 Come compilo io i programmi(Alla vecchia maniera funziona) fai cosi crea un FILE di c++ con xcode dagli un nome e salvalo nella tua directory(quella con la casa col tuo nome) e in quella finestra togli la spunta al coso che ti chiede se vuoi creare anche la versione .h ti appare un file di testo incollaci il codice poi file sav as chiamalo come hai chiamato prima il coso e dagli la stessa directory ricorda di mettere nel nome l' estensione .cpp apri il terminale e scrivi g++ nome del file.cpp poi scrivi ./a.out a me va benissimo.... EDIT funziona anche con un progetto di xcode senza terminale se hai installato xcode dal cd del mac allora devi selezionare un c++ tool nelle command line utiliti ed incollare il codice nel file .cpp poi fai solo bulid se hai scaricato xcode dal sito apple allora di sei fatto ingannare dall' immagine con scritto C++ con xcode scaricato dal sito devi selezionare a lato i command line utilty e li trovi il c++ tool e fai tutto allo stesso modo:ciao: When I’m Done, This Night Will Fear Me Link al commento Condividi su altri siti Altre opzioni di condivisione...
AleNofx Inviato 16 Gennaio 2009 Segnala Condividi Inviato 16 Gennaio 2009 Il problema è dovuto alla doppia funzione main, una in main.c e l'altra in max.c. Puoi inserire il tuo codice direttamente all'interno del main in main.c; se vuoi mantenere 2 file separati, nel file max.cpp crea una funzione che non si chiami main, ad esempio "float max(float a, float b, float c)", e richiami la funzione max all'interno del main() nel file main.cpp. VOX: coppertino.com Link al commento Condividi su altri siti Altre opzioni di condivisione...
kaioshin Inviato 16 Gennaio 2009 Segnala Condividi Inviato 16 Gennaio 2009 Allora, per prima cosa l'header file stdlib.h non ti serve,quindi è inutile includerlo nel programma,perchè non usi nessuna delle sue funzioni. Per quanto riguarda il problema penso si dovuto alla system("PAUSE"),intanto non ti serve,perchè nei mac dopo l'esecuzione del programma la finestra del terminale non si chiude automaticamente come nel prompt di windows,e poi penso che questa funzione non sia inclusa nelle librerie del compilatore del mac,che sarebbe il gcc. Comunque se posso darti un consiglio, per questi programmi così piccoli e semplici non ti conviene usare xcode e creare un progetto.Scaricati e usa SMULTRON,è un editor di testo avanzato per programmare veramente ottimo,scrivi il codice,lo salvi con estensione .cpp e poi lo compili da terminale come ti ha detto Nico con il comando: g++ nomefile.cpp -o nomefile La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! Link al commento Condividi su altri siti Altre opzioni di condivisione...
nico96 Inviato 16 Gennaio 2009 Segnala Condividi Inviato 16 Gennaio 2009 Ma mi ascolatate???Ame melo compila!!!!!!!!che cavolo nessuno che mi ascolta? When I’m Done, This Night Will Fear Me Link al commento Condividi su altri siti Altre opzioni di condivisione...
AleNofx Inviato 16 Gennaio 2009 Segnala Condividi Inviato 16 Gennaio 2009 Ma mi ascolatate???Ame melo compila!!!!!!!!che cavolo nessuno che mi ascolta? E chi ha detto che non compila?! Il problema è che non puoi avere 2 main in un unico progetto, poi il codice puoi scrivertelo e compilartelo dove e come ti pare... VOX: coppertino.com Link al commento Condividi su altri siti Altre opzioni di condivisione...
vinzmac Inviato 17 Gennaio 2009 Autore Segnala Condividi Inviato 17 Gennaio 2009 allora, il programma così com'è l'ho salvato nella home (quella con il nome utente) in estensione .cpp apro il terminale e scrivo g++ nomefile.cpp e la risposta è: -bash: g++: command not found medesima risposta se scrivo g++ nomefile.cpp -o nomefile per il fatto dei due main mi sa che nn ho ben afferrato, cmq ho provato a togliere il system("PAUSE") ma cmq nn va, e giusto per rispondere un po a tutto e a tutti ho installato xcode dal cd del mio macbook, nn l'ho scaricato da internet sto scemunendo XD ah, ho provato anche a scrivere il programma con textedit per poi salvarlo in .cpp (in pieno stile linux) ma da li nn mi fa salvare i documenti con estensione .cpp quindi nulla di fatto sucasete l'imbranataggggggine ma devo dire che il problema nn è ancora risolto Link al commento Condividi su altri siti Altre opzioni di condivisione...
nico96 Inviato 17 Gennaio 2009 Segnala Condividi Inviato 17 Gennaio 2009 allora, il programma così com'è l'ho salvato nella home (quella con il nome utente) in estensione .cpp apro il terminale e scrivog++ nomefile.cpp e la risposta è: -bash: g++: command not found medesima risposta se scrivo g++ nomefile.cpp -o nomefile per il fatto dei due main mi sa che nn ho ben afferrato, cmq ho provato a togliere il system("PAUSE") ma cmq nn va, e giusto per rispondere un po a tutto e a tutti ho installato xcode dal cd del mio macbook, nn l'ho scaricato da internet sto scemunendo XD ah, ho provato anche a scrivere il programma con textedit per poi salvarlo in .cpp (in pieno stile linux) ma da li nn mi fa salvare i documenti con estensione .cpp quindi nulla di fatto sucasete l'imbranataggggggine ma devo dire che il problema nn è ancora risolto :confused:Allora è un problema tuo..se nn trova gcc:confused::confused:che cosa strana che versione di xcode hai? When I’m Done, This Night Will Fear Me Link al commento Condividi su altri siti Altre opzioni di condivisione...
kaioshin Inviato 17 Gennaio 2009 Segnala Condividi Inviato 17 Gennaio 2009 Infatti,se non trova il comando g++ vuol dire che non hai installato il compilatore. Prova a disinstallare e a reinstallare xcode. Neanch'io ho ben capito il discorso dei 2 main, Alenofx potresti spiegarmelo meglio La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! Link al commento Condividi su altri siti Altre opzioni di condivisione...
AleNofx Inviato 17 Gennaio 2009 Segnala Condividi Inviato 17 Gennaio 2009 Ti manca il link a g++ in "/usr/bin/g++" (strano comunque). In ogni caso puoi sempre usare il path completo "/Developer/usr/bin/g++-4.0". A proposito dei 2 main, mi riferivo a "ld: duplicate symbol _main"; immagino che nel progetto abbia 2 file .cpp, un main.cpp e un max.cpp, entrambi che dichiarano una funzione main(), e ovviamente è impossibile determinare il punto di partenza del codice. Di main() ce ne deve essere sempre e solo uno soltanto. VOX: coppertino.com Link al commento Condividi su altri siti Altre opzioni di condivisione...
kaioshin Inviato 17 Gennaio 2009 Segnala Condividi Inviato 17 Gennaio 2009 Questo lo so, ma penso che il file sia uno solo, max è soltanto una variabile. Comunque è sicuramente un problema di compilatore e non di codice. Poi ho notato un'altra cosa che non va,però non ricordo se è proprio un errore o è soltanto un discorso di leggibilità del codice,le direttive del preprocessore vanno inserite tutte insieme,cioè avresti dovuto scrivere: #include <iostream> #include <stdlib> using namespace std; Anche se ripeto,la stdlib non ti serve per questo programma. E poi nel nuovo standard C++ non si usa più il .h, quindi in ogni caso devi scrivere #include <stdlib> La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! Link al commento Condividi su altri siti Altre opzioni di condivisione...
vinzmac Inviato 18 Gennaio 2009 Autore Segnala Condividi Inviato 18 Gennaio 2009 e l'odissea continua, allora premettendo che ho provado a togliere il .h ho provato ad eliminare il #include<stdlib> e roba varia, ho reinstallato tutto, magari c'era stato qualche intoppo l'ungo l'installazione...il cd è praticamente nuovissimo, ho acquistato la settimana scorsa il nuovo macbook... ora, reinstallato tutto quando faccio build sempre solito errore, se da terminale faccio g++ nomefile.cpp premo invio e faccio ./a.out mi lancia il programma...quindi tutto ok, l'unica cosa che mi dice è che nn riconosce il comando syste("PAUSE") e già mi avete spiegato il problema...ora assodato che posso utilizzare questo sistema, mi chiedo: 1)è possibile a questo punto utilizzare un editor di testo per scrivere il codice e salvarlo con estensione .cpp ?????? come si fa? 2)perchè diavolo xcode continua a darmi quest'errore? Link al commento Condividi su altri siti Altre opzioni di condivisione...
nico96 Inviato 18 Gennaio 2009 Segnala Condividi Inviato 18 Gennaio 2009 e l'odissea continua, allora premettendo che ho provado a togliere il .h ho provato ad eliminare il #include<stdlib> e roba varia, ho reinstallato tutto, magari c'era stato qualche intoppo l'ungo l'installazione...il cd è praticamente nuovissimo, ho acquistato la settimana scorsa il nuovo macbook...ora, reinstallato tutto quando faccio build sempre solito errore, se da terminale faccio g++ nomefile.cpp premo invio e faccio ./a.out mi lancia il programma...quindi tutto ok, l'unica cosa che mi dice è che nn riconosce il comando syste("PAUSE") e già mi avete spiegato il problema...ora assodato che posso utilizzare questo sistema, mi chiedo: 1)è possibile a questo punto utilizzare un editor di testo per scrivere il codice e salvarlo con estensione .cpp ?????? come si fa? 2)perchè diavolo xcode continua a darmi quest'errore? Puoi usare text edit basta che lo salvi mettendo fisicamente l' estensione cpp nel nome...cmq a me nn dice nulla neanche su PAUSE.... When I’m Done, This Night Will Fear Me Link al commento Condividi su altri siti Altre opzioni di condivisione...
vinzmac Inviato 18 Gennaio 2009 Autore Segnala Condividi Inviato 18 Gennaio 2009 su pause lo dice solo alla fine del programma, però lo esegue ugualmente, con il text editor mettendo fisicamente .cpp poi dopo averlo salfato devo cancellare .rtf dal nome Link al commento Condividi su altri siti Altre opzioni di condivisione...
vinzmac Inviato 18 Gennaio 2009 Autore Segnala Condividi Inviato 18 Gennaio 2009 okok, risolto...resta solo da capire come mai nn funziona xcode...mah Link al commento Condividi su altri siti Altre opzioni di condivisione...
kaioshin Inviato 19 Gennaio 2009 Segnala Condividi Inviato 19 Gennaio 2009 Come editor usa Smultron, è gratuito ed è il migliore. Ha varie funzionalità , tra cui ad esempio la sintassi colorata per vari linguaggi,tra cui ovviamente il C++. Ma quando apri un nuovo progetto in xcode che tipo di programma selezioni? Se non ricordo male dovresti selezionare Command Line Utility. La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! Link al commento Condividi su altri siti Altre opzioni di condivisione...
nico96 Inviato 19 Gennaio 2009 Segnala Condividi Inviato 19 Gennaio 2009 Come editor usa Smultron, è gratuito ed è il migliore.Ha varie funzionalità , tra cui ad esempio la sintassi colorata per vari linguaggi,tra cui ovviamente il C++. Ma quando apri un nuovo progetto in xcode che tipo di programma selezioni? Se non ricordo male dovresti selezionare Command Line Utility. command line utility è li tipo di progetto che ne contiene diversi e fra quelli deve fare un c++ tool... When I’m Done, This Night Will Fear Me Link al commento Condividi su altri siti Altre opzioni di condivisione...
kaioshin Inviato 19 Gennaio 2009 Segnala Condividi Inviato 19 Gennaio 2009 Giusto!! Questo passaggio non lo ricordavo La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! Link al commento Condividi su altri siti Altre opzioni di condivisione...
vinzmac Inviato 22 Gennaio 2009 Autore Segnala Condividi Inviato 22 Gennaio 2009 raga scusate per l'assenza, ma ho avuto un bel po da fare tra studio e lavoro, cmq per ora sorvolo sul tutto usando un text editor e faccio tutto da terminale, per xcode sisi, era proprio quello il passaggio che facevo perchè lo avevo letto su un'altro post già presente, cmq vabbè...il terminale mi basta ^^ grazie ancora a tutti Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.