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

Compilazione C++

Messaggio da Absolut »

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 0.x
Linux 0.x
Messaggi: 54
Iscritto il: mar 15 giu 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++

Messaggio da mcosta »

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

Re: Compilazione C++

Messaggio da Absolut »

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

Re: Compilazione C++

Messaggio da Absolut »

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 0.x
Linux 0.x
Messaggi: 54
Iscritto il: mar 15 giu 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++

Messaggio da mcosta »

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

Re: Compilazione C++

Messaggio da Absolut »

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 0.x
Linux 0.x
Messaggi: 54
Iscritto il: mar 15 giu 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++

Messaggio da mcosta »

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

Re: Compilazione C++

Messaggio da Absolut »

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.nSrc << ", " << nDemandList.nDest << ")" << " >";
nDemandList.nNominalPathPool->print();
}
cout <<"*******************************************************************************"<<endl;
PathFile.close();

}



cosa non va secondo voi!?

il file path.dat lo crea ma è vuoto

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

Re: Compilazione C++

Messaggio da Absolut »

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

Re: Compilazione C++

Messaggio da Absolut »

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!

Rispondi