|
|
|
|
| |
|
hyperion |
Problema con dev c++ |
28-01-2009 14:48 |
|
|
hyperion |
.illuminato.
Registered: Oct 2007
Posts: 171 (0.03 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 3 Days, 12:37:41 [...]
Status: Offline
Edit | Report | IP: Logged |
Problema con dev c++
ciao a tutti...utilizzando dev-c++ non riesco a compilare correttamente i seguenti sorgenti,mi dice che ho più di un main definito ma non capisco perchè ne ho solo uno!
Riporto l'errore che dev c++ mi da quando provo a compilare test.c con le seguenti opzioni : test.c stack.c
multiple definition of main
first defined here
..
..
suggerimenti?grazie mille..
Header file (stack.h)
PHP:
#ifndef STACK_H
#define STACK_H
void push( int n);
int pop();
int top(void);
int is_empty(void);
void make_empty(void);
void stampa(void);
#endif
Sorgente per l'header (stack.c)
PHP:
#include<stdio.h>
#include<stdlib.h>
#include "stack.h"
struct nodo{
int dato;
int h;
struct nodo *next;
};
int cont,h;
typedef struct nodo nodo;
nodo *testa = NULL;
nodo *tmp = NULL;
void push( int n){
struct nodo *nuovo;
nuovo = malloc(sizeof(struct nodo));
if(nuovo == NULL) exit(0);
nuovo -> dato = n;
nuovo -> next = testa;
testa = nuovo;
}
int pop(void){
tmp = testa;
h = tmp->dato;
testa = testa->next;
return h;
}
int top(void){
return testa->dato;
}
int is_empty(void){
if(testa == NULL) return 1;
else return 0;
}
void make_empty(void){
while(is_empty()== 1)
pop();
}
void stampa(void){
tmp=testa;
while(tmp !=NULL){
printf("| %d |\n",tmp->dato);
printf("|---|\n");
tmp=tmp->next;
}
}
Client di test (test.c)
PHP:
#include<stdio.h>
#include<stdlib.h>
#include "stack.h"
int main (){
char c;
int n,tmp;
while( ( c = getchar ()) != 'f' ){
switch(c){
case '1':
scanf("%d",&n);
push(n);
printf("inserito: %d",n);
break;
case '2':
tmp = pop();
printf("tolto: %d",tmp);
break;
case '3':
tmp = top();
printf("in testa: %d",tmp);
break;
case '4':
tmp = is_empty();
if(tmp==0)
printf("pila vuota");
else printf("pila non vuota");
break;
case '5':
make_empty();
printf("pila svuotata");
break;
case '6': stampa();
break;
} // end switch
}
return 0;
}
|
28-01-2009 14:48 |
|
|
| |
|
DarkSchneider |
l'errore mi pare chiaro:
... |
28-01-2009 19:07 |
|
|
DarkSchneider |
Why so serious?
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline
Edit | Report | IP: Logged |
l'errore mi pare chiaro:
hai definito più volte, anzichè una il main(), ovvero il punto di partenza
per l'esecuzione del tuo programma..
|
28-01-2009 19:07 |
|
|
| |
|
hyperion |
eccetto che in test.c non vedo altri main().... ... |
28-01-2009 19:36 |
|
|
hyperion |
.illuminato.
Registered: Oct 2007
Posts: 171 (0.03 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 3 Days, 12:37:41 [...]
Status: Offline
Edit | Report | IP: Logged |
eccetto che in test.c non vedo altri main()....
|
28-01-2009 19:36 |
|
|
| |
|
DarkSchneider |
non vorrei dire una scemenza, ma nel file test.c, ... |
28-01-2009 20:21 |
|
|
DarkSchneider |
Why so serious?
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline
Edit | Report | IP: Logged |
non vorrei dire una scemenza, ma nel file test.c, prova a fare un include di
stack.c, anzichè stack.h
|
28-01-2009 20:21 |
|
|
| |
|
recoil |
sembra il classico problema da Makefile
... |
30-01-2009 10:59 |
|
|
recoil |
dsy adminz
Registered: Mar 2002
Posts: 4454 (0.54 al dì)
Location: Milano / Erba
Corso: TICOM
Anno: laureato
Time Online: 61 Days, 16:17:45 [...]
Status: Offline
Edit | Report | IP: Logged |
sembra il classico problema da Makefile
capita, per distrazione, di includere due volte lo stesso file nella fase di linking. in questo modo c'è una definizione multipla delle stesse funzioni, nel tuo caso proprio il main.
il fatto è che dev-cpp non dovrebbe fare queste errori.
ti consiglio di compilare a mano quando puoi, almeno ti rendi conto di come funziona il Makefile... può sempre venire utile in futuro
apri il prompt di dos, aggiungi la directory bin di dev-cpp nel path poi edita il Makefile del tuo progetto e assicurati che non ci sia due volte il file test.o nel linking.
a quel punto lancia tu il make dal prompt di dos e vedi se funziona. se va, vuol dire che dev-cpp ha fatto macello, se invece il makefile era a posto non so che dirti
__________________
Sono sempre alla ricerca di curriculum interessanti da segnalare alle società con cui ho contatti. Info in pm
|
30-01-2009 10:59 |
|
|
| |
|
All times are GMT. The time now is 13:39. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|