Komischer GCC Fehler
-
Hallo, ich bekomme bei einigen Programmen etwas sehr komsiche angezeigt, wenn ich versuche sie zu kompilieren:
z.B. Dieses Programm:int main(void){ system("playwav test.wav"); return 0; }
Fehler:
Ferdinand@linux-4uxh:~> gcc test test.c test: In function `_start': /usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/i386/elf/start.S:65: multiple definition of `_start' /usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o:/usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/i386/elf/start.S:65: first defined here test:(.rodata+0x0): multiple definition of `_fp_hw' /usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o:(.rodata+0x0): first defined here test: In function `_fini': (.fini+0x0): multiple definition of `_fini' /usr/lib/gcc/i586-suse-linux/4.5/../../../crti.o:initfini.c:(.fini+0x0): first defined here test:(.rodata+0x4): multiple definition of `_IO_stdin_used' /usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o:(.rodata.cst4+0x0): first defined here test: In function `__data_start': (.data+0x0): multiple definition of `__data_start' /usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o:(.data+0x0): first defined here test: In function `__data_start': (.data+0x4): multiple definition of `__dso_handle' /usr/lib/gcc/i586-suse-linux/4.5/crtbegin.o:(.data+0x0): first defined here test: In function `_init': (.init+0x0): multiple definition of `_init' /usr/lib/gcc/i586-suse-linux/4.5/../../../crti.o:initfini.c:(.init+0x0): first defined here /tmp/ccPUQAcr.o: In function `main': test.c:(.text+0x0): multiple definition of `main' test:(.text+0x187): first defined here /usr/lib/gcc/i586-suse-linux/4.5/crtend.o:(.dtors+0x0): multiple definition of `__DTOR_END__' test:(.dtors+0x4): first defined here /usr/lib/gcc/i586-suse-linux/4.5/../../../../i586-suse-linux/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored. /usr/lib/gcc/i586-suse-linux/4.5/../../../../i586-suse-linux/bin/ld: error in test(.eh_frame); no .eh_frame_hdr table will be created. collect2: ld returned 1 exit status
Das habe ich jetzt schon bei verschiedenen Quellcodes gehabt.
Ich nutze GCC 4.5-4.2 mit gcc45 4.5.0_20100604-1.12
Mein System ist openSUSE 11.3 mit dem Kernel 2.6.34.7-0.7.1Hat jemand ne Idee was da los ist?
Danke
-
/usr/src/ ?? Wahrscheinlich hast du den gcc unsauber installiert ...
-
Ich würds mal mit gcc -o test test.c probieren -o sagt, wie die Ausgabe heißen soll ansonsten ist der default ja a.out oder so - und wenn du im Verzeichnis von test.c ne Datei hast, die Test heißt, will er die eventuell mitlinken oder was auch immer.
-
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
mache einfach
make test
-
Sieht so aus, als gäbe es mehrere main()-Funktionen, die zusammengelinkt werden. Versuch doch mal, dein Programm ohne main() zu kompilieren, was dann wohl passiert?