PDA

Visualizza la versione completa : Problemi con compilatore


FinalFantasy
01-03-2007, 13:25
Ciao a tutti...
non riesco a compilare nessun programma in C con g++, cosa devo fare? Ecco cosa succede



$ gcc -o spalatori.o spalatori.c
spalatori.c:7:2: warning: no newline at end of file
$ gcc -o spalatori spalatori.o
spalatori.o:(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o:(.rodata+0x0): first defined here
spalatori.o: In function `__data_start':
(.data+0x4): multiple definition of `__dso_handle'
/usr/lib/gcc/i486-linux-gnu/4.1.2/crtbegin.o:(.data+0x0): first defined here
spalatori.o: In function `_init':
/build/buildd/glibc-2.4/build-tree/i386-libc/csu/crti.S:36: multiple definition of `_init'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crti.o:/build/buildd/glibc-2.4/build-tree/i386-libc/csu/crti.S:36: first defined here
spalatori.o: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o:(.text+0x0): first defined here
spalatori.o: In function `_fini':
/build/buildd/glibc-2.4/build-tree/i386-libc/csu/crti.S:52: multiple definition of `_fini'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crti.o:/build/buildd/glibc-2.4/build-tree/i386-libc/csu/crti.S:52: first defined here
spalatori.o:(.rodata+0x4): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o:(.rodata.cst4+0x0): first defined here
spalatori.o: In function `__data_start':
(.data+0x0): multiple definition of `__data_start'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o:(.data+0x0): first defined here
collect2: ld returned 1 exit status

eppure il programma č un semplice ciao mondo


#include <stdio.h>

int main()
{
printf("Ciao mondo");
return 0;
}

suggerimenti? grazie e ciao

kruskaiev
01-03-2007, 15:42
Perche' hai sbagliato proprio il comando, quello giusto e':


gcc -c spalatori.c -o spalatori.o
gcc -o spalatori spalatori.o

FinalFantasy
01-03-2007, 16:26
Originariamente inviato da kruskaiev
Perche' hai sbagliato proprio il comando, quello giusto e':


gcc -c spalatori.c -o spalatori.o
gcc -o spalatori spalatori.o


yuppy!!!!!
funziona!!!!!
non c'č un modo per mettere assieme i due comandi in un modo solo? o devo necesasriamente fare cmd1 && cmd2?

quando metto l'estensione .c, automaticamente compila SOLO PER C, no?

ccs
06-03-2007, 11:28
devi usare le librerie posix se no nn va!!!

FinalFantasy
07-03-2007, 00:07
Originariamente inviato da ccs
devi usare le librerie posix se no nn va!!!
cioč?

kruskaiev
07-03-2007, 12:10
Non capisco la riposta.. penso che non abbia letto le risposte precedenti!

Comunque se vuoi puoi omettere di dare quei 2 comandi e darne solo uno:

gcc -o spalatori spalatori.c
Cosi' ti crea direttamente l'eseguibile senza dover fare prima spalatori.o.

Loading