Repository 32bit  Forum
Repository 64bit  Wiki

Compilazione C++

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Compilazione C++

Messaggioda Absolut » mar set 01, 2009 7:23

Salve ragazzi,
ho una domanda circa la compilazione di alcuni file. Questi dovrebbero essere stati scritti in C++. L'autore che gentilmente me li ha inviati mi ha scritto:

The files main (.cpp), network(.h,.cpp) and LinkList(.h) need to be compiled and linked together.


come devo procedere esattamente!?

vi ringrazio!
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current

Re: Compilazione C++

Messaggioda mcosta » mar set 01, 2009 8:08

Prova con

Codice: Seleziona tutto
g++ -o my_program main.cpp network.cpp


che, a meno di errori di compilazione, dovrebbe generare l'eseguibile "my_program"
Avatar utente
mcosta
Linux 1.0
Linux 1.0
 
Messaggi: 54
Iscritto il: lun giu 14, 2004 23:00
Località: Marano (NA)
Nome Cognome: Massimo Costa
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: KDE 4.2.4

Re: Compilazione C++

Messaggioda Absolut » mar set 01, 2009 17:41

ok grazie!!

mi accorgo di una cosa: quando poi lancio l'eseguibile ho un problema di

*** stack smashing detected ***

se metto in fase di compilazione:
-fno-stack-protector

non ce l'ho.

è una cosa corretta secondo voi!?

grazie!
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current

Re: Compilazione C++

Messaggioda Absolut » mer set 02, 2009 18:38

scusate ragazzi, l'autore di un codice C++ mi ha mandato i sorgenti.
e mi dice:

The files main (.cpp), network(.h,.cpp) and LinkList(.h) need to be
compiled and linked together.

come devo procedere alal compilazione!?

g++ ........!?!?!

metto solo i cpp o anche i .h!?

grazie!
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current

Re: Compilazione C++

Messaggioda mcosta » mer set 02, 2009 19:12

Absolut ha scritto:g++ ........!?!?!

metto solo i cpp o anche i .h!?


Devi compilare i soli *.cpp. (Se il codice è scritto rispettando le regole fondamentali).
Avatar utente
mcosta
Linux 1.0
Linux 1.0
 
Messaggi: 54
Iscritto il: lun giu 14, 2004 23:00
Località: Marano (NA)
Nome Cognome: Massimo Costa
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: KDE 4.2.4

Re: Compilazione C++

Messaggioda Absolut » mer set 02, 2009 21:39

Ok... credo di avere un problema!

il codice viene lanciato con un comanto

./prova nomefile.fat opzioni

Se come nome file metto il file che ho per testare il programma, ok, legge quello che c'è scritto direttamente.

Se però creo un file txt e poi lo rinomino in .dat e glielo faccio leggere, allora non legge bene le cose!

come mai!?

thanks!
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current

Re: Compilazione C++

Messaggioda mcosta » gio set 03, 2009 8:29

Una domanda semplice: "Quanto ne sai di C++?"
Il problema sembra a questo punto nella logica dell'applicazione e quindi per trovare la risposta alla tua domanda dovresti studiarti il codice.
Se si tratta di un software di analisi testo potrebbe essere legato alla codifica del ritorno a capo.
Avatar utente
mcosta
Linux 1.0
Linux 1.0
 
Messaggi: 54
Iscritto il: lun giu 14, 2004 23:00
Località: Marano (NA)
Nome Cognome: Massimo Costa
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: KDE 4.2.4

Re: Compilazione C++

Messaggioda Absolut » gio set 03, 2009 18:45

Ok.. pian piano risolvo!

Ora ho un problema nel printare l'output su un file:

il codice presente non funziona:
void Network::generatePathFile()
{
//To output the paths into a separate file
ofstream PathFile("paths.dat",ios::app);

//Writing Paths into a File
for (int i=0; i<nNumDemands; i++)
{
cout << "(" << nDemandList[i].nSrc << ", " << nDemandList[i].nDest << ")" << " >";
nDemandList[i].nNominalPathPool->print();
}
cout <<"*******************************************************************************"<<endl;
PathFile.close();

}



cosa non va secondo voi!?

il file path.dat lo crea ma è vuoto
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current

Re: Compilazione C++

Messaggioda Absolut » gio set 03, 2009 18:53

ok in un altro file sorgente ho trovato questa struttura:
Codice: Seleziona tutto
   void print(ofstream & out, int j)
   {
      struct node* temp = this->head;
      if( j <= this->size)
      {
         while( j!= 1)
         {
            temp=temp->next;
            j--;
         }
         out << "Paths " << temp->path->nId << " : ( Cost : " << temp->path->fCost << ") - ( with flow " <<temp->path->xval <<" )";
         for(int i=0; i<temp->path->nNumEdges; i++)
            out << temp->path->nEdgeList[i] << " ";
         out << "} " <<  endl;
      }   
   }
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current

Re: Compilazione C++

Messaggioda Absolut » gio set 03, 2009 20:57

c'è anche questa struttura.

Codice: Seleziona tutto
   void print()
   {
      struct node* temp = this->head;
      cout<<" Paths :[ ";
      while(temp != NULL)
      {
         cout << "(" << temp->path->fCost << "): {";
         for(int i=0; i<temp->path->nNumEdges; i++)
            cout << temp->path->nEdgeList[i] << " ";
         cout << "}, "<<endl;
         temp=temp->next;
      }
      cout<<" ]"<<endl;
   }


Se lascio nel codice solo print()
stampa le cose a video, ma non nel file.

per questo credo si debba usare print(ofstream & out, int j)

ma non so come si usa!?

please help me!

thanks!
Avatar utente
Absolut
Linux 3.x
Linux 3.x
 
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Località: Roma
Slackware: current


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Yahoo [Bot] e 2 ospiti