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.1

    Hat 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?


Anmelden zum Antworten