Problema eclipse e il main ()

Salve a tutti,

ho un piccolo problema con eclipse e i programmi in C:
qualsiasi programma che avevo scritto in precedenza (funzionante con dev C++ o gcc) quando provo a compilarlo, nella finestra degli errori mi dice: [quote]undefinited reference to ‘main’[/quote]
ho provato a cambiare la dichiarazione di main in vari modi ma il problema è sempre lo stesso…

probabilmente errore di sintassi.
vediamo un frammento del codice.

[quote] int main(void)
{
initialize(&headPtr);
instruction();

system(“PAUSE”);
return 0;
}[/quote]

ho provato con
int main (void)
int main ()
void main()
int main(int argc, char *argv])
etc etc

Non dovrebbe essere un errore di sintassi perché con altri compilatori funge… boh

comunque mi da errore anche se faccio il programmino che stampa Hello World!!

quali altri compilatori ?

la sintassi :
int main()
{

return 0;
}

è corretta.

posta il codice di hello-world che non funziona.

Ciao

Non è che manca qualche include vitale??

Ciao Ciao, Moreno

Dev C++ e GCC lo avevo scritto su

il codice di hello word funzionante su Dev C++ e GCC è

[quote]# include <stdio.h>

int main()

{
printf(“Hello Word”);
}[/quote]

Ciao

La direttiva #include deve contenere qualche cosa cioè un file da includere altrimenti non ha senso

es

#include <stdio.h>

#include “miofile.h”

[postedit]
Penso che sia un problema di visualizzazione del forum vedo che anche il mio include risulta vuoto proviamo con code

#include <stdio.h>

#include "miofile.h"

Sì con il code funziona, evita quindi di usare il quote altrimenti non si vede cosa hai incluso.
[/postedit]

Ciao Ciao, Moreno

mancano le librerie “iostrem” e “stdio.h”
prova così:

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
  {
    cout << "Hello Word";
    return 0;
  }

@ tutti.
cerchiamo di non aggiungere confusione a confusione.

l’utente Aliekor non è in grado nemmeno di dirci se vuole scrivere codice C oppure C++.

[quote=virus]
@ tutti.
cerchiamo di non aggiungere confusione a confusione.

l’utente Aliekor non è in grado nemmeno di dirci se vuole scrivere codice C oppure C++.[/quote]

Cerchiamo di non offendere, basta leggerlo il codice per capire che è C e non C++

inoltre la prima cosa che ho scritto è

allora vi posto tutto il codice del programma cosi non state a perdere tempo a dirmi cose che gia so dato che ho detto che il programma FUNZIONA con altri compilatori

ditemi voi se cosi è più facile focalizzare il problema

ps il forum mi elimina il contenuto delle include (le libreirie) pero nel programma ovviamente ci sono

non era mia intenzione offendere alcuno.

continui a dire che il codice funziona con altri compilatori.
l’unico compilatore che viene rilasciato nelle distribuzioni linux è il gcc.

credo che tu faccia confusione tra compilatori ed ide.

se il codice funziona per linea di comando compilandolo con gcc, non è il codice il problema, è l’ide.

[quote=virus]
se il codice funziona per linea di comando compilandolo con gcc, non è il codice il problema, è l’ide.[/quote]
Anche a me in passato è successo la stessa cosa: il codice veniva compilato con gcc:

# g++ Prova.cpp
# ./a.out 

ma non riuscivo a compilarlo con codeblocks.

Aliekor controlla se hai installato xterm per visualizzare l’output del codce:

yum install xterm

Comunque ricordo che disinstallai i compilatori gcc e codeblocks, eliminai la cartella codeblocks dalla directory .kde e poi installai di nuovo il tutto.

non mi voglio intrometere nella vostra discusione ma guardando il codice vedo delle cose strane.del tipo

system(“PAUSE”);

su linux viene usata per chiamare comandi di sistema

int main(void)
{
initialize(&headPtr);
instruction();

system(“PAUSE”);
return 0;
}

gcc error.c -o error
./error
sh: PAUSE: command not found

E’ probabile che Aliekor abbia inizialmente scritto il codice con dev c++. Infatti dev c++ aggiunge in automatico la riga di codice

system(“PAUSE”);

quando si crea un nuovo file .c o .cpp.

Hai provato a cancellare questa riga?

ragazzi se posso intromettermi il problema che non copila su linux non penso sia dovuto solo alla system pause che e inutile se compili x linux comunque lo stesso problema mi e gia capitato sul mac

eclipse a volta quando viene installato non so ancora perche ma si mangia le librerie nel senso che quando uno compila non funge dando errori stranissimi questo succede spesso su sistemi di tipo unix questo perche le librerie che usa eclipse sono le stesse che usa anche il gcc.

il mio consiglio e di aggiornare eclipse dal menu opzioni e aggiornare tutte le funzioni del linguaggio che ti interessa.

comunque se posso esprimere il mio parare ti consiglio di non usare eclipse per programmare in c su linux perche e facile imbattersi in problemi tipo questo usa il gedit e salvi il file in .c

lo compili col gcc e vedrai che ti trovi melgio tanto in fase di compilazione il debug funge anche li.

$ gcc -o nomeeseguile file.c
$ ./nomeeseguibile

[quote=djfaz]
ragazzi se posso intromettermi il problema che non copila su linux non penso sia dovuto solo alla system pause che e inutile se compili x linux comunque lo stesso problema mi e gia capitato sul mac

eclipse a volta quando viene installato non so ancora perche ma si mangia le librerie nel senso che quando uno compila non funge dando errori stranissimi questo succede spesso su sistemi di tipo unix questo perche le librerie che usa eclipse sono le stesse che usa anche il gcc.

il mio consiglio e di aggiornare eclipse dal menu opzioni e aggiornare tutte le funzioni del linguaggio che ti interessa.

comunque se posso esprimere il mio parare ti consiglio di non usare eclipse per programmare in c su linux perche e facile imbattersi in problemi tipo questo usa il gedit e salvi il file in .c

lo compili col gcc e vedrai che ti trovi melgio tanto in fase di compilazione il debug funge anche li.

$ gcc -o nomeeseguile file.c
$ ./nomeeseguibile[/quote]

Il post è a tratti incomprensibile.
Ti prego di curare la scrittura:

Abbiamo utenti stranieri (persino di altri pianeti), per cui scrivere in italiano standard è indispensabile, se vogliamo che tutti possano capire

S.

quali sono questi stranieri?visto che a me sembra che l’unico sono io :slight_smile:

scusate per il linguaggio poco chiaro ma ieri sera la stanchezza mi ha fatto strani scherzi :slight_smile:

comunque volevo dire che a volte quando si installa eclipse le librerie non vengono memorizzate all interno del s.o. quindi automanticamente non compila

nell esempio di hello world da errore di compilazione perche non essendo presente la libreria stdlib.h o in caso di c la iostream.h non riconosce la struttura del main ed i comandi di I/O tipo printf-scanf o cin - cout

quindi consiglio di aggiornare eclipse dal suo menu di settaggio oppure visto che si creano app su un sistema unix consiglio di usare il gcc

[quote=djfaz]
nell esempio di hello world da errore di compilazione perche non essendo presente la libreria stdlib.h o in caso di c la iostream.h non riconosce la struttura del main ed i comandi di I/O tipo printf-scanf o cin - cout[/quote]

Hai provato ad includere solamente la libreria stdio.h per il C?Per quel poco di C che ho fatto ho sempre usato quella libreria

In più se ricordo bene il system(“pause”) è una system call di windows

[quote=Paky]

[quote=djfaz]
nell esempio di hello world da errore di compilazione perche non essendo presente la libreria stdlib.h o in caso di c la iostream.h non riconosce la struttura del main ed i comandi di I/O tipo printf-scanf o cin - cout[/quote]

Hai provato ad includere la libreria stdio.h per il C?Per quel poco di C che ho fatto ho sempre usato quella libreria

In più se ricordo bene il system(“pause”) è una system call di windows[/quote]