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.
Avatar utente
Absolut
Linux 3.x
Linux 3.x
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Slackware: current
Località: Roma

Compilazione C++

Messaggioda Absolut » mar set 01, 2009 8: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
mcosta
Linux 1.0
Linux 1.0
Messaggi: 54
Iscritto il: mar giu 15, 2004 0:00
Nome Cognome: Massimo Costa
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: KDE 4.2.4
Località: Marano (NA)

Re: Compilazione C++

Messaggioda mcosta » mar set 01, 2009 9: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
Absolut
Linux 3.x
Linux 3.x
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Slackware: current
Località: Roma

Re: Compilazione C++

Messaggioda Absolut » mar set 01, 2009 18: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
Slackware: current
Località: Roma

Re: Compilazione C++

Messaggioda Absolut » mer set 02, 2009 19: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
mcosta
Linux 1.0
Linux 1.0
Messaggi: 54
Iscritto il: mar giu 15, 2004 0:00
Nome Cognome: Massimo Costa
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: KDE 4.2.4
Località: Marano (NA)

Re: Compilazione C++

Messaggioda mcosta » mer set 02, 2009 20: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
Absolut
Linux 3.x
Linux 3.x
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Slackware: current
Località: Roma

Re: Compilazione C++

Messaggioda Absolut » mer set 02, 2009 22: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
mcosta
Linux 1.0
Linux 1.0
Messaggi: 54
Iscritto il: mar giu 15, 2004 0:00
Nome Cognome: Massimo Costa
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: KDE 4.2.4
Località: Marano (NA)

Re: Compilazione C++

Messaggioda mcosta » gio set 03, 2009 9: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
Absolut
Linux 3.x
Linux 3.x
Messaggi: 1465
Iscritto il: gio feb 10, 2005 0:00
Slackware: current
Località: Roma

Re: Compilazione C++

Messaggioda Absolut » gio set 03, 2009 19: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
Slackware: current
Località: Roma

Re: Compilazione C++

Messaggioda Absolut » gio set 03, 2009 19: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
Slackware: current
Località: Roma

Re: Compilazione C++

Messaggioda Absolut » gio set 03, 2009 21: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!


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti