Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Errori assurdi in compilazione

    Ciao
    ho fatto un programma in C++, fino a qualche giorno fa andava. Poi ho reinstallato Linux per alcuni problemi (guarda un po causati da windows...) e adesso riprovando a compilare i sorgenti ottengo un sacco di errori, tipo:
    codice:
    ditta.cpp: In function `int main()':
    ditta.cpp:113: parse error before `{' token
    ditta.cpp: At global scope:
    ditta.cpp:119: parse error before `if'
    ditta.cpp:122: ISO C++ forbids declaration of `exit' with no type
    ditta.cpp:122: `int exit' redeclared as different kind of symbol
    /usr/include/stdlib.h:610: previous declaration of `void exit(int)'
    ditta.cpp:123: parse error before `}' token
    ditta.cpp:127: parse error before `;' token
    ditta.cpp:127: syntax error before `++' token
    ditta.cpp:130: syntax error before `.' token
    ditta.cpp:131: syntax error before `.' token
    ditta.cpp:132: syntax error before `.' token
    ditta.cpp:133: syntax error before `.' token
    ditta.cpp:137: redefinition of `int exit'
    ditta.cpp:122: `int exit' previously defined here
    ditta.cpp:139: syntax error before `.' token
    ditta.cpp:144: syntax error before `++' token
    ditta.cpp:147: parse error before `;' token
    ditta.cpp:147: syntax error before `++' token
    ditta.cpp:151: syntax error before `.' token
    ditta.cpp:153: parse error before `for'
    ditta.cpp:153: parse error before `;' token
    ditta.cpp:153: syntax error before `++' token
    ditta.cpp:157: syntax error before `.' token
    ditta.cpp:158: syntax error before `.' token
    ditta.cpp:159: syntax error before `.' token
    ditta.cpp:160: syntax error before `.' token
    ditta.cpp:163: syntax error before `.' token
    ditta.cpp:165: parse error before `for'
    ditta.cpp:165: parse error before `)' token
    ditta.cpp:165: syntax error before `++' token
    ditta.cpp:173: parse error before `;' token
    ditta.cpp:173: syntax error before `++' token
    ditta.cpp:177: syntax error before `.' token
    ditta.cpp:178: redefinition of `int ran'
    ditta.cpp:152: `int ran' previously defined here
    ditta.cpp:179: parse error before `for'
    ditta.cpp:179: parse error before `;' token
    ditta.cpp:179: syntax error before `++' token
    ditta.cpp:184: syntax error before `.' token
    ditta.cpp:185: syntax error before `.' token
    ditta.cpp:186: syntax error before `.' token
    ditta.cpp:187: syntax error before `.' token
    ditta.cpp:190: syntax error before `.' token
    ditta.cpp:191: redefinition of `int count'
    ditta.cpp:164: `int count' previously defined here
    ditta.cpp:192: parse error before `for'
    ditta.cpp:192: parse error before `)' token
    ditta.cpp:192: syntax error before `++' token
    ditta.cpp:198: syntax error before `.' token
    ditta.cpp:199: parse error before `;' token
    ditta.cpp:199: syntax error before `++' token
    ditta.cpp:203: ISO C++ forbids declaration of `tableRow' with no type
    ditta.cpp:203: new declaration `int tableRow()'
    ditta.cpp:99: ambiguates old declaration `void tableRow()'
    ditta.cpp:204: ISO C++ forbids declaration of `tableHead' with no type
    ditta.cpp:204: new declaration `int tableHead()'
    ditta.cpp:100: ambiguates old declaration `void tableHead()'
    ditta.cpp:205: ISO C++ forbids declaration of `tableRow' with no type
    ditta.cpp:206: syntax error before `.' token
    ditta.cpp:207: syntax error before `.' token
    ditta.cpp:208: parse error before `;' token
    ditta.cpp:208: syntax error before `++' token
    ditta.cpp:210: ISO C++ forbids declaration of `tableRow' with no type
    ditta.cpp:211: syntax error before `<<' token
    ditta.cpp:211: syntax error before `.' token
    ditta.cpp:211: syntax error before `<<' token
    ditta.cpp:212: ISO C++ forbids declaration of `exit' with no type
    ditta.cpp:212: redefinition of `int exit'
    ditta.cpp:137: `int exit' previously defined here
    ditta.cpp:213: ISO C++ forbids declaration of `pauseSec' with no type
    ditta.cpp:214: parse error before `}' token
    ditta.cpp:216: syntax error before `.' token
    ditta.cpp:217: parse error before `;' token
    ditta.cpp:217: syntax error before `++' token
    ditta.cpp:219: ISO C++ forbids declaration of `fclose' with no type
    ditta.cpp:219: `int fclose' redeclared as different kind of symbol
    /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/include/stdio.h:209: previous
       declaration of `int fclose(FILE*)'
    ditta.cpp:219: invalid conversion from `FILE*' to `int'
    ditta.cpp:220: parse error before `return'
    ditta.cpp: In function `void tableHead()':
    ditta.cpp:234: new declaration `void tableHead()'
    ditta.cpp:204: ambiguates old declaration `int tableHead()'
    ditta.cpp: In function `void tableRow()':
    ditta.cpp:239: new declaration `void tableRow()'
    ditta.cpp:210: ambiguates old declaration `int tableRow()'
    la cosa e' notevole...
    non riesco a capire perche', dato che prima funzionava tutto.

    Che manchi qualche libreria?
    Strano, uso quelle del c++ standard piu' una fatta da me...

    cosa puo' essere?
    grazie
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Secondo me è andato su male g++ o qualche header

  3. #3
    ma e' strano... si e' impiantato tutto cosi'!

    Sebra che manchi qualcosa... ma per me nn manca nulla.

    Che librerie servono per fare i programmi in C/C++ su linux?

    Elencate tutte quelle che sapete, cosi' vedo se le ho installate...

    non vorrei che fosse quello

    Vabe
    grazie
    ciauz
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  4. #4
    anzi, provo a compilare altro e vedo se mi da gli stessi errori

    ummm
    ummmmmm

    ciauz
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Praticamente ti da un errore ogni riga...

  6. #6
    sembra solo quel file... gli altri no
    bho, la guardo meglio, mica che ho modificato qualcosa e nn ricordo
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    A questo punto è probabile anche solo che hai cancellato un carattere si sputtana la compilazione...

  8. #8
    posto la prima parte del codice... magari vedete cose che io non vedo
    codice:
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    #include "dllist.h"
    
    using namespace std;
    
    #define NUM 5
    #define TIME_UNIT 15
    
    class Ore
    {
    	public:
    	char hh;
    	char mm;
    
    	Ore(){hh = mm = 0;}
    	void stampa()
    	{
    		cout.setf(ios::right);
    		cout.width(2);
    		cout.fill('0');
    		cout << (int)hh << ":";
    		cout.width(2);
    		cout << (int)mm;
    		cout.fill(' ');
    		cout.unsetf(ios::right);
    	}
    	int inc(int num = 1)
    	{
    		for (int i = 0; i < num; i++)
    		{
    			mm += TIME_UNIT;
    			if (mm >= 60)
    			{
    				hh++;
    				mm = 0;
    			}
    			if (hh >= 24)
    			{
    				hh = 0;
    				return 1;
    			}
    		}
    		return 0;
    	}
    }ora;
    
    struct Operaio
    {
    	char matricola[13];
    	uint ingresso;
    	uint uscita;
    	uint ore;
    };
    
    void cscr();
    void tableRow();
    void tableHead();
    void tableEntry(const char *fld1, const char *fld2, const char* fld3, int fld4);
    void pauseSec(int n = 1);
    
    int main()
    {
    	srand(time(NULL));
    	int num = 0;
    	Operaio tmpO, nullO = {"",0,0,0};
    
    	tmpO.ingresso = 0;
    	tmpO.uscita = 0;
    	tmpO.ore = 0;
    	tmpO.matricola[5] = {'\0'};
    
    	DLList<Operaio> dip; // la lista dei dipendenti
    	DLList<Operaio> uff; // i dipendenti in ufficio
    
    	FILE *file = NULL;
    	if ((file = fopen("tempi.txt", "w")) == NULL)
    	{
    		cerr << "Impossibile aprire il file\n";
    		exit(1);
    	}
    
    	// generazione dei dipendenti
    
    	for (int i = 0; i < NUM; i++)
    	{
    		tmpO.matricola[0] = 'A' + i;
    		tmpO.matricola[1] = 'a' + i;
    		tmpO.matricola[2] = '\0';
    		dip.push_back( tmpO );
    		uff.push_back( nullO );
    	}
    
    	int ingressi = 0;
    	int exit = 0;
    	int oreinout = 0;
    	ora.inc(30/2);
    
    	while(!exit)
    	{
    		cscr();
    		oreinout++;
    		if ((ora.hh >= 8) && (ora.hh <= 9))
    		{
    			for (int j = 0; j < rand() % 2 + 1; j++)
    			while(1) // finche non sono tutti al lavoro
    			{
    				dip.first();
    				uff.first();
    				int ran = rand() % NUM;
    				for(int i = 0; i < ran; i++, dip++, uff++);
    				if (dip.get().matricola[0] != '\0')
    				{
    					uff.del();
    					uff.put(dip.get());
    					dip.del();
    					dip.put(nullO);
    					uff.mod().ingresso = oreinout;
    					break;
    				}
    				dip.first();
    				int count = 0;
    				for (int i = 0; ((i < dip.getNum()) && (dip.get().matricola[0] == '\0')); i++, dip++, count++);
    				// vede quanti sono i dipendenti al lavoro
    				if (count == dip.getNum())
    					break;
    			}
    		}
    		else if ((ora.hh >= 17) && (ora.hh <= 21))
    		{
    			for (int j = 0; j < rand() % 2 + 1; j++)
    			while(1) // finche non sono tutti a casa :)
    			{
    				dip.first();
    				uff.first();
    				int ran = rand() % NUM;
    				for(int i = 0; i < ran; i++, dip++, uff++);
    				if (uff.get().matricola[0] != '\0')
    				{
    					//cout << "Spostamento num: " << ran << "\n";
    					dip.del();
    					dip.put(uff.get());
    					uff.del();
    					uff.put(nullO);
    					dip.mod().uscita = oreinout;
    					break;
    				}
    				uff.first();
    				int count = 0;
    				for (int i = 0; ((i < uff.getNum()) && (uff.get().matricola[0] == '\0')); i++, uff++, count++);
    				// vede quanti sono i dipendenti al lavoro
    				if (count == uff.getNum())
    					break;
    			}
    		}
    		uff.first();
    		for (int i = 0; i < uff.getNum(); i++, uff++)
    			if (uff.get().matricola[0] != '\0')
    				uff.mod().ore++;
    
    		tableRow();
    		tableHead();
    		tableRow();
    		dip.first();
    		uff.first();
    		for (int i = 0; i < NUM; i++, dip++, uff++)
    			tableEntry(dip.get().matricola, "", uff.get().matricola, uff.get().ore / ( 60 / TIME_UNIT + 1 ) );
    		tableRow();
    		cout << " - ORE: "; ora.stampa(); cout << " \n";
    		exit = ora.inc();
    		pauseSec();
    	}
    
    	dip.first();
    	for (int i = 0; i < NUM; i++, dip++)
    		fprintf(file, "%s %d %d %d\n", dip.get().matricola, dip.get().ingresso, dip.get().uscita, dip.get().ore / ( 60 / TIME_UNIT + 1 ) );
    	fclose(file);
    	return 0;
    }
    
    void cscr()
    {
    #if 1
    	cout << "\033[2J\033[1;1H"; // cancella e porta in alto a sin
    #elif
    	clrscr();
    #endif
    }
    
    
    void tableHead()
    {
    	cout << "|   MATRICOLA   |   MATRICOLA   |  ORE  |\n";
    }
    
    void tableRow()
    {
    	cout << "+---------------+---------------+-------+\n";
    }
    
    void tableEntry(const char *fld1, const char *fld2, const char* fld3, int fld4)
    {
    	cout << "| ";
    	cout.setf(ios::left);
    	cout.width(14);
    	cout << fld1 << "| ";
    	cout.width(14);
    	cout << fld3 << "| ";
    	cout.width(6);
    	cout << fld4 << "|\n";
    }
    
    void pauseSec(int n)
    {
    	int now = time(NULL);
    	while(now + n != time(NULL));
    }
    anzi l'ho postato tutto :P

    grazie
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  9. #9
    nellheader dllist.h non ci sono errori a quanto sembra... compilando va tutto liscio come l'olio

    mah..
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Perchè negli header non ci metti il .h?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.